日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

toml文件格式

發(fā)布時間:2024/4/13 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 toml文件格式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

TOML的由來

配置文件的使用由來已久,從.ini、XML、JSON、YAML再到TOML,語言的表達(dá)能力越來越強(qiáng),同時書寫便捷性也在不斷提升。 TOML是前GitHub CEO, Tom Preston-Werner,于2013年創(chuàng)建的語言,其目標(biāo)是成為一個小規(guī)模的易于使用的語義化配置文件格式。TOML被設(shè)計為可以無二義性的轉(zhuǎn)換為一個哈希表(Hash table)。

例子

# 這是一個TOML文件

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]#你可以使用空格、制表符進(jìn)行縮進(jìn),或者根本不縮進(jìn)。TOML不關(guān)心縮進(jìn)。[servers.alpha]ip = "10.0.0.1"dc = "eqdc10"[servers.beta]ip = "10.0.0.2"dc = "eqdc10"[clients] data = [ ["gamma", "delta"], [1, 2] ]# 數(shù)組內(nèi)可以混入換行符 hosts = ["alpha","omega" ]

規(guī)范

  • TOML是大小寫敏感
  • TOML文件必須是UTF8編碼
  • 空白符可以是制表符(0x09)或空格(0x20)
  • 換行符可以是 LF (0x0A) 或 CRLF (0x0D0A)

TOML仍在不斷完善,目前的版本0.4.0,下面是最新的規(guī)范。

注釋

使用#來表示注釋開始,至當(dāng)前行尾結(jié)束

# I am a comment. Hear me roar. Roar. key = "value" # Yeah, you can do this.

字符串

TOML中有4種字符串表示方法:基本、多行-基本、字面量、多行-字面量。所有字符串必須是合法的UTF8字符。

基本字符串

基本字符串由雙引號包裹,所有Unicode字符均可出現(xiàn),除了雙引號、反斜線、控制字符(U+0000 to U+001F)需要轉(zhuǎn)義。

str = "I'm a string. \"You can quote me\". Name\tJos\u00E9\nLocation\tSF."

常用的轉(zhuǎn)義序列:

\b - backspace (U+0008) \t - tab (U+0009) \n - linefeed (U+000A) \f - form feed (U+000C) \r - carriage return (U+000D) \" - quote (U+0022) \\ - backslash (U+005C) \uXXXX - unicode (U+XXXX) \UXXXXXXXX - unicode (U+XXXXXXXX)

多行-基本

多行-基本字符串三個雙引號包裹,除了分隔符開始的換行外,字符串內(nèi)的換行將被保留

str1 = ``""``"``Roses are red``Violets are blue``""``"

TOML解析器可以將其翻譯為平臺相關(guān)的字符串,如

# Unix上,上述字符串等同于 str2 = "Roses are red\nViolets are blue"# Windows上,上述字符串等同于 str3 = "Roses are red\r\nViolets are blue"

多行-基本字符串 中可以在行尾使用\來忽略其后的所有(換行符和空白符)直到第一個非空白符

# 以下字符串等價 str1 = "The quick brown fox jumps over the lazy dog."str2 = """ The quick brown \fox jumps over \the lazy dog."""key3 = """\The quick brown \fox jumps over \the lazy dog.\"""

字面量字符串

字面量字符串單引號包裹,其內(nèi)不允許轉(zhuǎn)義,因此可以方便的表示基本字符串中需要轉(zhuǎn)義的內(nèi)容。

# What you see is what you get. winpath = 'C:\Users\nodejs\templates' winpath2 = '\\ServerX\admin$\system32\' quoted = 'Tom "Dubs" Preston-Werner' regex = '<\i\c*\s*>'

多行-字面量字符串

多行-字面量字符串與多行-基本字符串類似,不同的是以三個單引號包裹

整數(shù)

int1 = +99 int2 = 42 int3 = 0 int4 = -17

為了增加可讀性,整數(shù)可以使用_分隔。每個_必須被至少一個數(shù)字環(huán)繞。

不被允許的表達(dá):前置0, 2、8、16進(jìn)制、無窮、NaN。 整數(shù)的范圍是64bit signed long類型的范圍。

浮點數(shù)

# fractional flt1 = +1.0 flt2 = 3.1415 flt3 = -0.01# exponent flt4 = 5e+22 flt5 = 1e6 flt6 = -2E-2# both flt7 = 6.626e-34

浮點數(shù)的范圍是64 bit double類型的范圍。

布爾值

小寫的true或false。

bool1 = true bool2 = false

日期時間

使用RFC 3339描述的時間格式

date1 = 1979-05-27T07:32:00Z date2 = 1979-05-27T00:32:00-07:00 date3 = 1979-05-27T00:32:00.999999-07:00

數(shù)組

數(shù)組使用方括號包裹。空格會被忽略,包括換行符。元素使用逗號分隔。注意,不允許混用數(shù)據(jù)類型(所有的字符串類型均為同一類型)。

arr1 = [ 1, 2, 3 ] arr2 = [ "red", "yellow", "green" ] arr3 = [ [ 1, 2 ], [3, 4, 5] ] arr4 = [ "all", 'strings', """are the same""", '''type'''] # this is ok arr5 = [ [ 1, 2 ], ["a", "b", "c"] ] # this is ok arr6 = [ 1, 2.0 ] # note: this is NOT ok

表格

表格也稱為哈希表字典,用來存儲鍵值對。表格名由方括號包裹,且自成一行

[table]

表格名下,直到下一個表格名或文件尾,均為當(dāng)前表格的內(nèi)容。

[table] key = "value" bare_key = "value" bare-key = "value""127.0.0.1" = "value" "character encoding" = "value" "???" = "value"

表格可以嵌套,即表格中某個鍵的值可以為表格

[dog] onekey = onevalue[dog.tater] type = "pug"

等價于

{"dog": { "onekey":"onevalue","tater": { "type": "pug" } } }

如果你不想的話,你不用聲明所有的父表。TOML 知道該如何處理。

# [x] 你 # [x.y] 不需要 # [x.y.z] 這些 [x.y.z.w] # 可以直接寫

表格數(shù)組

[[products]] name = "Hammer" sku = 738594937[[products]][[products]] name = "Nail" sku = 284758393 color = "gray"

等價于以下的 JSON 結(jié)構(gòu):

{"products": [{ "name": "Hammer", "sku": 738594937 },{ },{ "name": "Nail", "sku": 284758393, "color": "gray" }] }

參考

官方文檔:https://github.com/toml-lang/toml/blob/master/versions/cn/toml-v0.4.0.md

總結(jié)

以上是生活随笔為你收集整理的toml文件格式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。