Elm:
使用TOML

如何操作:

Elm没有内置的TOML解析器,但你可以与JavaScript互操作或使用社区包。下面是通过一个假想的elm-toml包解析TOML的方法:

import Toml

configToml : String
configToml =
    """
    [server]
    port = 8080
    """

parseResult : Result Toml.Decode.Error Toml.Value
parseResult =
    Toml.decodeString configToml

对于解码特定值:

portDecoder : Toml.Decode.Decoder Int
portDecoder =
    Toml.Decode.field "server" (Toml.Decode.field "port" Toml.Decode.int)

port : Result String Int
port =
    Toml.decodeString portDecoder configToml

如果解码成功,port的示例输出可能是Ok 8080

深入探讨

TOML由GitHub的联合创始人Tom Preston-Werner创建,作为配置文件的简单语言。它与YAML和JSON竞争;TOML的语法旨在兼具两者的优点,重点是易于人类读写。

在Elm中,处理TOML通常需要通过JavaScript互操作,这可能有点麻烦。幸运的是,Elm社区资源丰富,存在几个第三方包。假想的elm-toml包可能会使用Elm的Port与JavaScript的TOML解析器对话,或直接在Elm中实现解析。

Elm的主要障碍是它静态类型化一切,所以你需要编写自定义解码器来处理TOML中的不同数据结构,这可能有点冗长但增加了安全性。

另见

有关TOML本身的规范和更多信息,请查看TOML。 如果你正在寻找Elm和JavaScript互操作的实践方法,请从官方指南开始:Elm Ports。 浏览Elm Packages了解社区包或贡献。