溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

YAML簡(jiǎn)易教程

發(fā)布時(shí)間:2020-06-27 15:15:20 來源:網(wǎng)絡(luò) 閱讀:552 作者:nineteens 欄目:編程語言

  一、YAML簡(jiǎn)介

  YAML是一種人性化、跨語言、基于Unicode的數(shù)據(jù)序列化語言,YAML是“ YAML Ain’t a Markup Language ” 的遞歸縮寫,YAML不是一種標(biāo)記語言,讀音“ 雅梅爾”。

  二、YAML的優(yōu)點(diǎn)(特性)

  YAML的數(shù)據(jù)結(jié)構(gòu)清晰,易于閱讀。

  YAML是跨語言的,它的數(shù)據(jù)在編程語言之間可移植。

  YAML符合敏捷語言的數(shù)據(jù)結(jié)構(gòu)。

  YAML支持一次性操作。

  YAML表現(xiàn)力強(qiáng),擴(kuò)展性好。

  YAML易于實(shí)現(xiàn)。

  三、YAML與其他語言的關(guān)系

  與JSON的關(guān)系

  共同點(diǎn):

  JSON和YAML都是易于閱讀的數(shù)據(jù)格式。

  不同點(diǎn):

  JSON的設(shè)計(jì)目標(biāo)是簡(jiǎn)單和通用,而YAML的設(shè)計(jì)主要在于易于閱讀和支持任何復(fù)雜數(shù)據(jù)結(jié)構(gòu)。

  YAML可看作JSON的自然超集,提供更好的可讀性和完整的信息模型。

  每一個(gè)JSON文件都是一個(gè)有效的YAML文件,JSON遷移向YAML是很容易的事。

  與XML的關(guān)系

  YAML和XML沒有直接相關(guān)性。YAML是一種數(shù)據(jù)序列化語言。XML是一種向后兼容的通用標(biāo)記語言(SGML)。XML有設(shè)計(jì)約束,而YAML沒有。

  四、YAML語法

  基本規(guī)則

  YAML區(qū)分大小寫

  使用縮進(jìn)表示層級(jí)關(guān)系

  縮進(jìn)使用空格,不能使用TAB(同層級(jí)左對(duì)齊即可,不要求空格數(shù),一般用2或4個(gè)空格)

  使用#號(hào)表示注釋(YAML只有行注釋)

  數(shù)據(jù)結(jié)構(gòu)

  字典:鍵值對(duì)的集合,又稱為映射(mapping)/ 哈希(hashes) / 對(duì)象

  數(shù)組:一組按次序排列的值,又稱為序列(sequence) / 列表(list)

  純量:?jiǎn)蝹€(gè)的、不可再分的值,即基本數(shù)據(jù)類型

  注意:重復(fù)定義時(shí),后面的值會(huì)覆蓋前面的值;值為 int, float, bool等類型,解析后會(huì)轉(zhuǎn)換為對(duì)應(yīng)的類型

  字典

  key: value

  縮進(jìn)表層級(jí)關(guān)系

  key:

  child-key1: child-value1

  child-key2: child-value2

  縮進(jìn)只能用空格,不能用TAB鍵

  上面的用流式寫法表示:

  key: {child-key1: child-value1, child-key2, child-value2}

  數(shù)組鄭州人流多少錢 http://www.hnmt120.com/

  language :

  - Java

  - Python

  - Golang

  等價(jià)于 {‘language’ : [‘Java’, ‘Python’, ‘Golang’]}

  server :

  -

  host : 127.0.0.1

  port : 80

  -

  host : 127.0.0.1

  port : 8081

  流式寫法 server : [{‘host’ : ‘127.0.0.1’, ‘port’ : ‘80’ } , {‘host’ : ‘127.0.0.1’, ‘port’ : ‘80’ } ]

  -

  - Java

  - Python

  - Golang

  等價(jià)于 [[‘Java’, ‘Python’, ‘Golang’]]

  ?

  - complexkey1

  - complexkey2

  :

  - complexvalue1

  - complexvalue2

  等價(jià)于 {[complexkey1, complexkey2] : [complexvalue1, complexkey2]}

  純量

  純量,也就是常量吧,整數(shù),浮點(diǎn)數(shù),字符串,NULL,日期,布爾,時(shí)間。以下用一個(gè)例子演示

  int:

  - 333

  - 0b1010_0111_0100_1010_1110 # 二進(jìn)制表示

  float:

  - 3.14

  - 6.8523015e+5 # 科學(xué)計(jì)數(shù)法表示

  string:

  - 'bcat' # 雙引號(hào)轉(zhuǎn)譯 單引號(hào)不轉(zhuǎn)譯 下面是多種字符串換行寫法

  - line

  newline # 換行連接處會(huì)轉(zhuǎn)譯成一個(gè)空格

  - |

  line # 換行處會(huì)有 \n 換行符

  newline

  - >

  line # 字符串結(jié)尾會(huì)有 \n 換行符

  newline

  - "line\ # 換行處無空格 無 \n 換行符

  newline"

  null:

  - username : 'bcat'

  - ~ # ~ 表示null

  date:

  - 2019-12-17 # 日期必須使用 ISO 8601格式 即 yyyy-MM-dd格式

  datetime:

  - 2019-12-17T16:15:31+08:00 #時(shí)間使用ISO 8601格式 時(shí)間日期之間用T連接 時(shí)間時(shí)區(qū)之間用+分隔其他特殊符號(hào)


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI