toml配置语言


TOML是前GitHub CEO
Tom Preston-Werner
于2013年创建的语言
目标是成为一个小规模的易于使用的语义化配置文件格式
TOML被设计为可以无二义性的转换为一个哈希表(Hash table)
TOML是大小写敏感的
必须是UTF-8编码
title = "TOML Example"
[owner]
name = "Lance Uppercut"
dob = 1979-05-27T07:32:00-08:00 # 日期是一等公民
[database]
server = "192.168.1.1"
ports = [ 8001, 8001, 8002 ]
connection_max = 5000
enabled = true
[servers]
#可用空格 制表符进行缩进
或者根本不缩进
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"
]
注释
使用#来表示注释开始
至当前行尾结束
# I am a comment. Hear me roar. Roar.
字符串
TOML中有4种字符串表示方法:基本、多行-基本、字面量、多行-字面量
基本字符串
由双引号包裹
所有Unicode字符均可出现
除了双引号、反斜线、控制字符(U+0000 to U+001F)需要转义
str = "I'm a string. \"You can quote me\"."
多行-基本字符串
由三个双引号包裹
除了分隔符开始的换行外
字符串内的换行将被保留
str1 = """
Roses are red
Violets are blue"""
字面量字符串由单引号包裹其内不允许转义
因此可以方便的表示基本字符串中需要转义的内容
winpath = 'C:\Users\nodejs\templates'
多行-字面量字符串
与多行-基本字符串相似
str1 = '''
Roses are red
Violets are blue'''
数值与BOOL值
int1 = +99
flt3 = -0.01
bool1 = true
日期时间date1 = 1979-05-27T07:32:00Z
数组数组使用方括号包裹
空格会被忽略
包括换行符
元素使用逗号分隔
arr1 = [ 1, 2, 3 ]
arr2 = [ "red", "yellow", "green" ]
arr3 = [ [ 1, 2 ], [3, 4, 5] ]
表格
表格叶称为哈希表或字典
用来存储键值对 表格名由方括号包裹且自成一行
[dog]
onekey = onevalue
[dog.tater]
type = "pug"
go包
github.com/bbangert/toml包
对toml文件进行解析