Contents
TOML 的全称是 Tom’s Obvious, Minimal Language,因为它的作者是 GitHub 联合创始人 Tom Preston-Werner, TOML 这个名字贼逗。
TOML 是目录最优秀的配置文件格式方案,相较于yaml、json、ini,优势很明显。目前很多新项目直接使用 TOML作为配置文件的格式,比如golang官方的go.mod。
TOML 的目标
TOML 的目标是成为一个极简的配置文件格式。TOML 被设计成可以无歧义地被映射为哈希表,从而被多种语言解析。
官方示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
title = "TOML 例子" [owner] name = "Tom Preston-Werner" organization = "GitHub" bio = "GitHub Cofounder & CEOnLikes tater tots and beer." dob = 1979-05-27T07:32:00Z # 日期时间是一等公民。为什么不呢? [database] server = "192.168.1.1" ports = [ 8001, 8001, 8002 ] connection_max = 5000 enabled = true [servers] # 你可以依照你的意愿缩进。使用空格或Tab。TOML不会在意。 [servers.alpha] ip = "10.0.0.1" dc = "eqdc10" [servers.beta] ip = "10.0.0.2" dc = "eqdc10" [clients] data = [ ["gamma", "delta"], [1, 2] ] # 在数组里换行没有关系。 hosts = [ "alpha", "omega" ]
注释
使用 #
注释:
1 2
# I am a comment. Hear me roar. Roar. key = "value" # Yeah, you can do this.
字符串
1 2
wrong = "C:Usersnodejstemplates" # 注意:这不会生成合法的路径。 right = "C:\Users\nodejs\templates"
布尔值
数组
数组使用方括号包裹。空格会被忽略。元素使用逗号分隔。注意,不允许混用数据类型。
1 2 3 4 5
[ 1, 2, 3 ] [ "red", "yellow", "green" ] [ [ 1, 2 ], [3, 4, 5] ] [ [ 1, 2 ], ["a", "b", "c"] ] # 这是可以的。 [ 1, 2.0 ] # 注意:这是不行的。
以上基本覆盖了配置的使用场景,TOML 各个语言支持都很好,直接使用即可。
原文:大专栏 TOML 简介