这是 TOML 格式配置文件语法的快速参考备忘清单。

入门

介绍

TOML 是一种最小的配置文件格式,由于明显的语义而易于阅读。

示例

1
2
3
4
5
6
bool = true
date = 2006-05-27T07:32:00Z
string = "hello"
number = 42
float = 3.14
scientificNotation = 1e+12

注释

1
2
3
4
5
# A single line comment example
# block level comment example
# 注释行 1
# 注释行 2
# 注释行 3

整数

1
2
3
4
int1 = +42
int2 = 0
int3 = -21
integerRange = 64

浮点数

1
2
3
float2 = 3.1415
float4 = 5e+22
float7 = 6.626e-34

布尔值

1
2
3
bool1 = true
bool2 = false
boolMustBeLowercase = true

时间日期

1
2
3
4
5
6
date1 = 1989-05-27T07:32:00Z
date2 = 1989-05-26T15:32:00-07:00
date3 = 1989-05-27T07:32:00
date4 = 1989-05-27
time1 = 07:32:00
time2 = 00:32:00.999999

字符串

1
2
3
str1 = "I'm a string."
str2 = "You can \"quote\" me."
str3 = "Name\tJos\u00E9\nLoc\tSF."

See: Strings

Table

1
2
3
[owner]
name = "Tom Preston-Werner"
dob = 1979-05-27T07:32:00-08:00

See: Tables

数组

1
2
3
array1 = [1, 2, 3]
array2 = ["Commas", "are", "delimiter"]
array3 = [8001, 8001, 8002]

友好数组

1
2
3
4
5
6
array1 = [ "Don't mix", "different", "types" ]
array2 = [ [ 1.2, 2.4 ], ["all", 'strings', """are the same""", '''type'''] ]
array3 = [
"Whitespace", "is",
"ignored"
]

TOML 字符串

基本字符串

1
2
3
str1 = "I'm a string."
str2 = "You can \"quote\" me."
str3 = "Name\tJos\u00E9\nLoc\tSF."

多行基本字符串

1
2
3
4
5
6
7
8
9
str1 = """
Roses are red
Violets are blue"""

str2 = """\
The quick brown \
fox jumps over \
the lazy dog.\
"""

用行末反斜杠自动剔除非空白字符前的任何空白字符

多行文字字符串

1
2
3
4
5
6
7
re = '''\d{2} apps is t[wo]o many'''
lines = '''
The first newline is
trimmed in raw strings.
All other whitespace
is preserved.
'''

由于没有转义,无法在由单引号包裹的字面量字符串中写入单引号

字面量字符串

1
2
3
4
path = 'C:\Users\nodejs\templates'
path2 = '\\User\admin$\system32'
quoted = 'Tom "Dubs" Preston-Werner'
regex = '<\i\c*\s*>'

用单引号括起来。不允许转义。

TOML 数字

整数、浮点数、无穷甚至非数都是支持的。你可以用科学计数法甚至千分符

整数

1
2
3
4
int1 = +99
int2 = 42
int3 = 0
int4 = -17

十六进制带有前缀 0x

1
2
3
hex1 = 0xDEADBEEF
hex2 = 0xdeadbeef
hex3 = 0xdead_beef

八进制带有前缀 0o

1
2
oct1 = 0o01234567
oct2 = 0o755

二进制带有前缀 0b

1
bin1 = 0b11010110

both

1
float7 = 6.626e-34

分隔符

1
float8 = 224_617.445_991_228

小数

1
2
3
float1 = +1.0
float2 = 3.1415
float3 = -0.01

指数

1
2
3
float4 = 5e+22
float5 = 1e06
float6 = -2E-2

无穷

1
2
3
infinite1 = inf  # 正无穷
infinite2 = +inf # 正无穷
infinite3 = -inf # 负无穷

非数

1
2
3
not1 = nan
not2 = +nan
not3 = -nan

TOML 日期与时刻

TOML 支持日期、时刻、日期时刻,带或者不带时区偏移

坐标日期时刻

1
2
3
odt1 = 1979-05-27T07:32:00Z
odt2 = 1979-05-27T00:32:00-07:00
odt3 = 1979-05-27T00:32:00.999999-07:00

各地日期时刻

1
2
ldt1 = 1979-05-27T07:32:00
ldt2 = 1979-05-27T00:32:00.999999

各地日期

1
ld1 = 1979-05-27

各地时刻

1
2
lt1 = 07:32:00
lt2 = 00:32:00.999999

TOML Tables

基本的

1
2
3
[name]
foo = 1
bar = 2

foobar 是名为name 的表中的键

嵌套

1
2
3
4
[table1]
foo = "bar"
[table1.nested_table]
baz = "bat"

类数组

1
2
3
4
5
6
[[comments]]
author = "Nate"
text = "Great Article!"
[[comments]]
author = "Anonymous"
text = "Love it!"

↓ 等效的 JSON

1
2
3
4
5
6
7
8
9
10
11
12
{
"comments" : [
{
"author" : "Nate",
"text" : "Great Article!"
},
{
"author" : "Anonymous",
"text" : "Love It!"
}
]
}

点分隔

1
2
[dog."tater.man"]
type = "pug"

↓ 等效的 JSON

1
2
3
4
5
6
7
{
"dog": {
"tater.man": {
"type": "pug"
}
}
}

多嵌套

1
2
[foo.bar.baz]
bat = "hi"

↓ 等效的 JSON

1
2
3
4
5
6
7
8
9
{
"foo" : {
"bar" : {
"baz" : {
"bat" : "hi"
}
}
}
}

忽略空格

1
2
3
4
[a.b.c]          # this is best practice
[ d.e.f ] # same as [d.e.f]
[ g . h .i ] # same as [g.h.i]
[ j . "ʞ" .'l' ] # same as [j."ʞ".'l']

内联表

1
2
3
name = { first = "Tom", last = "Preston-Werner" }
point = { x = 1, y = 2 }
animal = { type.name = "pug" }

另见


评论
avatar
竹山一叶
技术分享 个人心得
Follow Me
公告
欢迎光临小站,这里是我日常工作和学习中收集和整理的总结,希望能对你有所帮助:)

本站的内容经过个人加工总结而来,也参考了网友们分享的资料,如有侵权,请第一时间联系我,我将及时进行修改或删除😊
最新文章
网站资讯
文章数目 :
437
已运行时间 :
本站总字数 :
431.6k
本站访客数 :
本站总访问量 :
最后更新时间 :
文章归档文章分类文章标签复制本文标题复制本文地址
随便逛逛