日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)GoFrame教程:GoFrame配置管理-TOML格式

基本介紹

?Toml?是一種易讀、?mini?語言,由?github?前CEO Tom創(chuàng)建。?Tom's Obvious, Minimal Language?。

創(chuàng)新互聯(lián)公司一直在為企業(yè)提供服務(wù),多年的磨煉,使我們?cè)趧?chuàng)意設(shè)計(jì),成都全網(wǎng)營銷到技術(shù)研發(fā)擁有了開發(fā)經(jīng)驗(yàn)。我們擅長傾聽企業(yè)需求,挖掘用戶對(duì)產(chǎn)品需求服務(wù)價(jià)值,為企業(yè)制作有用的創(chuàng)意設(shè)計(jì)體驗(yàn)。核心團(tuán)隊(duì)擁有超過10多年以上行業(yè)經(jīng)驗(yàn),涵蓋創(chuàng)意,策化,開發(fā)等專業(yè)領(lǐng)域,公司涉及領(lǐng)域有基礎(chǔ)互聯(lián)網(wǎng)服務(wù)服務(wù)器托管成都APP應(yīng)用開發(fā)、手機(jī)移動(dòng)建站、網(wǎng)頁設(shè)計(jì)、網(wǎng)絡(luò)整合營銷。

?TOML?致力于配置文件的小型化和易讀性。 

  • WIKI介紹: https://github.com/toml-lang/toml/wiki
  • 官方地址: https://github.com/toml-lang/toml
  • 漢化版:https://github.com/LongTengDao/TOML/blob/%E9%BE%99%E8%85%BE%E9%81%93-%E8%AF%91/toml-v1.0.0.md

與其他格式比較

?TOML?與用于應(yīng)用程序配置和數(shù)據(jù)序列化的其他文件格式(如?YAML?和?JSON?)具有相同的特性。?TOML?和?JSON?都很簡單,并且使用普遍存在的數(shù)據(jù)類型,這使得它們易于編寫代碼或使用機(jī)器進(jìn)行解析。?TOML?和?YAML?都強(qiáng)調(diào)人的可讀性,比如注釋,它使理解給定行的目的變得更容易。?TOML?的不同之處在于,它支持注釋(不像?JSON?),但保持了簡單性(不像?YAML?)。

由于?TOML?被顯式地設(shè)計(jì)為一種配置文件格式,所以解析它很容易,但并不打算序列化任意的數(shù)據(jù)結(jié)構(gòu)。?TOML?的文件頂層是一個(gè)哈希表,它很容易在鍵中嵌套數(shù)據(jù),但是它不允許頂級(jí)數(shù)組或浮點(diǎn)數(shù),所以它不能直接序列化一些數(shù)據(jù)。也沒有標(biāo)準(zhǔn)來標(biāo)識(shí)?TOML?文件的開始或結(jié)束,這會(huì)使通過流發(fā)送文件變得復(fù)雜。這些細(xì)節(jié)必須在應(yīng)用層進(jìn)行協(xié)商。

?INI?文件經(jīng)常與?TOML?進(jìn)行比較,因?yàn)樗鼈冊(cè)谡Z法和用作配置文件方面具有相似性。然而,?INI?沒有標(biāo)準(zhǔn)化的格式,它們不能優(yōu)雅地處理超過一兩個(gè)層次的嵌套。

基礎(chǔ)語法

title = "TOML 例子"

[owner]
name = "Tom Preston-Werner"
organization = "GitHub"
bio = "GitHub Cofounder & CEO\nLikes tater tots and beer."
dob = 1979-05-27T07:32:00Z # 日期時(shí)間是一等公民。為什么不呢?

[database]
server = "192.168.1.1"
ports = [ 8001, 8001, 8002 ]
connection_max = 5000
enabled = true

[servers]
  # 你可以依照你的意愿縮進(jìn)。使用空格或Tab。TOML不會(huì)在意。
  [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ù)組里換行沒有關(guān)系。
hosts = [
  "alpha",
  "omega"
]

特點(diǎn): 

  • 大小寫敏感,必須是?UTF-8?編碼
  • 注釋:?# ?
  • 空白符:?tab(0x09)?或?space(0x20) ?
  • 換行符:?LF(0x0A)?或?CRLF(0x0D 0x0A) ?
  • 鍵值對(duì):同一行,無值的鍵不可用,每行只能保存一個(gè)鍵值對(duì)

?TOML?主要結(jié)構(gòu)是鍵值對(duì),與?JSON?類似。值必須是如下類型: ?String?, ?Integer?, ?Float?, ?Boolean?, ?Datetime?, ?Array?, ?Table?

注釋

使用 ?#? 表示注釋:

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

字符串

?TOML?中有4種字符串表示方法:基本、多行-基本、字面量、多行-字面量

1. 基本字符串

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

2. 多行-基本字符串

由三個(gè)雙引號(hào)包裹,除了分隔符開始的換行外,字符串內(nèi)的換行將被保留:

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

3. 字面量字符串

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

winpath = 'C:\Users\nodejs\templates'

4. 多行-字面量字符串

與多行-基本字符串相似:

str1 = '''
Roses are red
Violets are blue'''

數(shù)值與BOOL值

int1  = +99
flt3  = -0.01
bool1 = true

日期時(shí)間

date = 1979-05-27T07:32:00Z

數(shù)組

數(shù)組使用方括號(hào)包裹??崭駮?huì)被忽略。元素使用逗號(hào)分隔。

注意,同一個(gè)數(shù)組下不允許混用數(shù)據(jù)類型。

array1 = [ 1, 2, 3 ]
array2 = [ "red", "yellow", "green" ]
array3 = [ [ 1, 2 ], [3, 4, 5] ]
array4 = [ [ 1, 2 ], ["a", "b", "c"] ] # 這是可以的。
array5 = [ 1, 2.0 ] # 注意:這是不行的。

表格

表格(也叫哈希表或字典)是鍵值對(duì)的集合。它們?cè)诜嚼ㄌ?hào)內(nèi),自成一行。注意和數(shù)組相區(qū)分,數(shù)組只有值。

[table]

在此之下,直到下一個(gè)tableEOF之前,是這個(gè)表格的鍵值對(duì)。鍵在左,值在右,等號(hào)在中間。鍵以非空字符開始,以等號(hào)前的非空字符為結(jié)尾。鍵值對(duì)是無序的。

[table]
key = "value"

你可以隨意縮進(jìn),使用Tab或空格。為什么要縮進(jìn)呢?因?yàn)槟憧梢郧短妆砀瘛?/p>

嵌套表格的表格名稱中使用?.?符號(hào)。你可以任意命名你的表格,只是不要用點(diǎn),點(diǎn)是保留的。

[dog.tater]
type = "pug"

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

{ "dog": { "tater": { "type": "pug" } } }

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

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

空表是允許的,其中沒有鍵值對(duì)。

只要父表沒有被直接定義,而且沒有定義一個(gè)特定的鍵,你可以繼續(xù)寫入:

[a.b]
c = 1

[a]
d = 2

然而你不能多次定義鍵和表格。這么做是不合法的。

# 別這么干!

[a]
b = 1

[a]
c = 2
# 也別這個(gè)干

[a]
b = 1

[a.b]
c = 2

表格數(shù)組

最后要介紹的類型是表格數(shù)組。表格數(shù)組可以通過包裹在雙方括號(hào)內(nèi)的表格名來表達(dá)。使用相同的雙方括號(hào)名稱的表格是同一個(gè)數(shù)組的元素。表格按照書寫的順序插入。雙方括號(hào)表格如果沒有鍵值對(duì),會(huì)被當(dāng)成空表。

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

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

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

表格數(shù)組同樣可以嵌套。只需在子表格上使用相同的雙方括號(hào)語法。每一個(gè)雙方括號(hào)子表格從屬于最近定義的上層表格元素。

[[fruit]]name = "apple"

  [fruit.physical]
    color = "red"
    shape = "round"

  [[fruit.variety]]name = "red delicious"

  [[fruit.variety]]name = "granny smith"[[fruit]]name = "banana"

  [[fruit.variety]]name = "plantain"

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

{
  "fruit": [
    {
      "name": "apple",
      "physical": {
        "color": "red",
        "shape": "round"
      },
      "variety": [
        { "name": "red delicious" },
        { "name": "granny smith" }
      ]
    },
    {
      "name": "banana",
      "variety": [
        { "name": "plantain" }
      ]
    }
  ]
}

嘗試定義一個(gè)普通的表格,使用已經(jīng)定義的數(shù)組的名稱,將拋出一個(gè)解析錯(cuò)誤:

# 不合法的 TOML[[fruit]]name = "apple"

  [[fruit.variety]]name = "red delicious"

  # 和上面沖突了
  [fruit.variety]
    name = "granny smith"

名稱欄目:創(chuàng)新互聯(lián)GoFrame教程:GoFrame配置管理-TOML格式
轉(zhuǎn)載來源:http://www.5511xx.com/article/cciepjd.html