TOML Reference
- TOML
- Tom's Obvious, Minimal Language
TOML 被設計成可以無歧義地對映為雜湊表。(相當於 JSON 物件吧)
註釋
# 這是一個全行註釋
key = "value" # 這是一個行末註釋
another = "# 這不是一個註釋"
鍵值對
TOML 文件最基本的構成區塊是鍵值對。
name = "Orange"
physical.color = "orange"
physical.shape = "round"
site."google.com" = true
等價於 JSON 的如下結構:
{
"name": "Orange",
"physical": {
"color": "orange",
"shape": "round"
},
"site": {
"google.com": true
}
}
字串
多行基本字串由三個引號包裹,允許折行。
- 緊隨開頭引號的那個換行會被去除
- 其它空白和換行會被原樣保留
str1 = """
Roses are red
Violets are blue"""
陣列
陣列是內含值的方括號。
- 空白會被忽略
- 子元素由逗號分隔
- 陣列可以包含與鍵值對所允許的相同資料型別的值
- 可以混合不同型別的值
integers = [ 1, 2, 3 ]
colors = [ "紅", "黃", "綠" ]
nested_array_of_ints = [ [ 1, 2 ], [3, 4, 5] ]
nested_mixed_array = [ [ 1, 2 ], ["a", "b", "c"] ]
string_array = [ "所有的", '字串', """是相同的""", '''型別''' ]
# 允許混合型別的陣列
numbers = [ 0.1, 0.2, 0.5, 1, 2, 5 ]
contributors = [
"Foo Bar <foo@example.com>",
{ name = "Baz Qux", email = "bazqux@example.com", url = "https://example.com/bazqux" }
]
- 陣列可以跨行
- 陣列的最後一個值後面可以有終逗號(也稱為尾逗號)
- 值、逗號、結束括號前可以存在任意數量的換行和註釋
- 陣列值和逗號之間的縮排被作為空白對待而被忽略
integers2 = [
1, 2, 3
]
integers3 = [
1,
2, # 這是可以的
]
表
表(也被稱為雜湊表或字典)是鍵值對的集合。
- 它們由表頭定義,連同方括號作為單獨的行出現
- 看得出表頭不同於陣列,因為陣列只有值
- 在它下方,直至下一個表頭或檔案結束,都是這個表的鍵值對
- 表不保證保持鍵值對的指定順序
[table-1]
key1 = "some string"
key2 = 123
[table-2]
key1 = "another string"
key2 = 456
等價於:
{
"table-1": {
"key1": "some string",
"key2": 123
},
"table-2": {
"key1": "another string",
"key2": 456
}
}
表陣列
這可以透過把表名寫在雙方括號裡的表頭來表示
- 表頭的第一例定義了這個陣列及其首個表元素,而後續的每個則在該陣列中建立並定義一個新的表元素
- 這些表按出現順序插入該陣列
[[products]]
name = "Hammer"
sku = 738594937
[[products]] # 陣列裡的空表
[[products]]
name = "Nail"
sku = 284758393
color = "gray"
等價於:
{
"products": [
{ "name": "Hammer", "sku": 738594937 },
{ },
{ "name": "Nail", "sku": 284758393, "color": "gray" }
]
}