Skip to content

1.适用场景

龙腾道 edited this page Sep 30, 2021 · 1 revision

  书写配置文件。因为它为人类的可直接读写性而进行了深度设计,并作出了必要的取舍。
  它比 .ini 文件更强大,比 YAML 格式更简单。
  但如果您需要程序间的序列化/反序列化数据交换格式,那么 JSON 是目前更通行的选择。

  在将 TOML 与其它文件格式比较时,务必要注意使用场景,就是在往往没有智能编辑器的情况下,用一个简单到不能再简单的纯文本编辑工具,进行人工读写。
  这种情境下,由于编辑器没有换行自动缩进的能力,因此基于缩进(无论是语法还是阅读)的方案是不可接受的,基于缩进书写多层嵌套的哈希表、特别是多行字符串将会是噩梦
  TOML 不需要缩进而能表示层级的“点分隔键”“表头”的天才思路,基本是目前为止这种情况下的唯一解。
  但是,如果读写场景是有高级编辑器支持的,那么对比文件格式的问题会变得几乎没有意义——你总是可以在可视化插件的帮助下,达到远比一切纯文本编辑完美的读写体验,至于背后的存储格式,就变得不再那么重要,因为那可以交给程序自动完成,只要支持 git diff,哪怕它是个数据库文件都可以。

  另外,TOML 是通用型数据的配置文件格式。
  在一些特定的功能场景下,肯定会有更有针对性和表现力的声明格式,比如用于 API 的 .d.ts(TypeScript),或用于前端模板的 .md.jade,乃至表现语法规范本身的 .abnf 等。