forked from toml-lang/toml
-
Notifications
You must be signed in to change notification settings - Fork 42
1.适用场景
龙腾道 edited this page Sep 30, 2021
·
1 revision
书写配置文件。因为它为人类的可直接读写性而进行了深度设计,并作出了必要的取舍。
它比 .ini
文件更强大,比 YAML 格式更简单。
但如果您需要程序间的序列化/反序列化数据交换格式,那么 JSON 是目前更通行的选择。
在将 TOML 与其它文件格式比较时,务必要注意使用场景,就是在往往没有智能编辑器的情况下,用一个简单到不能再简单的纯文本编辑工具,进行人工读写。
这种情境下,由于编辑器没有换行自动缩进的能力,因此基于缩进(无论是语法还是阅读)的方案是不可接受的,基于缩进书写多层嵌套的哈希表、特别是多行字符串将会是噩梦。
TOML 不需要缩进而能表示层级的“点分隔键”“表头”的天才思路,基本是目前为止这种情况下的唯一解。
但是,如果读写场景是有高级编辑器支持的,那么对比文件格式的问题会变得几乎没有意义——你总是可以在可视化插件的帮助下,达到远比一切纯文本编辑完美的读写体验,至于背后的存储格式,就变得不再那么重要,因为那可以交给程序自动完成,只要支持 git diff,哪怕它是个数据库文件都可以。
另外,TOML 是通用型数据的配置文件格式。
在一些特定的功能场景下,肯定会有更有针对性和表现力的声明格式,比如用于 API 的 .d.ts
(TypeScript),或用于前端模板的 .md
、.jade
,乃至表现语法规范本身的 .abnf
等。
© 2022 龙腾道