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