
- YAML 教程
- YAML - 首頁
- YAML – 簡介
- YAML – 基礎知識
- YAML – 縮排和分隔
- YAML – 註釋
- YAML – 集合和結構
- YAML – 標量和標籤
- YAML –完整示例
- YAML – 流程
- YAML – 資訊模型
- YAML – 語法字元
- YAML – 語法基本元素
- YAML – 字元流
- YAML – 節點屬性
- YAML – 塊標量頭部
- YAML – 流式風格
- YAML – 塊式風格
- YAML – 序列風格
- YAML – 流式對映
- YAML – 塊式序列
- YAML – 容錯模式
- YAML – JSON 模式
- YAML 有用資源
- YAML - 快速指南
- YAML - 有用資源
- YAML - 討論
YAML - 語法基本元素
在本節中,您將學習 YAML 中語法基本元素的以下方面:
- 生成引數
- 縮排空格
- 分隔空格
- 忽略的行字首
- 折行
讓我們詳細瞭解每個方面。
生成引數
生成引數包括一組引數以及特定生成中使用的允許值的範圍。YAML 中使用以下生成引數列表:
縮排
它用字元n 或 m 表示。字元流取決於其中包含的塊的縮排級別。許多生成都將這些功能引數化。
上下文
它用c 表示。YAML 支援兩組上下文:塊風格和流式風格。
風格
它用 s 表示。標量內容可以以五種風格之一呈現:純文字、雙引號和單引號流、字面量和摺疊塊。
截斷
它用t 表示。塊標量提供了許多有助於修剪塊的機制:去除、裁剪和保留。截斷有助於格式化新行字串。它用於塊風格表示。截斷過程在指示符的幫助下進行。指示符控制使用字串的新行應產生什麼輸出。新行使用(-)運算子刪除,並使用(+)運算子新增。
下面顯示了一個截斷過程的示例:
strip: |- text↓ clip: | text↓ keep: |+ text↓
解析指定的 YAML 示例後的輸出如下:

縮排空格
在 YAML 字元流中,縮排被定義為由零個或多個字元組成的換行符。最重要的是,縮排不能包含任何製表符字元。縮排中的字元永遠不應被視為節點內容資訊的一部分。觀察以下程式碼以更好地理解:
%YAML 1.1 --- !!map { ? !!str "Not indented" : !!map { ? !!str "By one space" : !!str "By four\n spaces\n", ? !!str "Flow style" : !!seq [ !!str "By two", !!str "Still by two", !!str "Again by two", ] } }
縮排後可以看到的輸出如下:
{ "Not indented": { "By one space": "By four\n spaces\n", "Flow style": [ "By two", "Still by two", "Again by two" ] } }
分隔空格
YAML 使用空格字元來分隔標記。最重要的是,YAML 中的分隔符不能包含製表符字元。
以下程式碼行顯示了分隔空格的使用:
{ · first: · Sammy, · last: · Sosa · }上面顯示的語法為您提供以下輸出
{ "\u00b7 last": "\u00b7 Sosa \u00b7", "\u00b7 first": "\u00b7 Sammy" }
忽略的行字首
空字首始終包含取決於標量型別的縮排,也包括前導空格。純標量不能包含任何製表符字元。另一方面,帶引號的標量可以包含製表符字元。塊標量完全依賴於縮排。
以下示例以系統的方式顯示了忽略的行字首的工作原理:
%YAML 1.1 --- !!map { ? !!str "plain" : !!str "text lines", ? !!str "quoted" : !!str "text lines", ? !!str "block" : !!str "text·®lines\n" }
塊流獲得的輸出如下:
{ "plain": "text lines", "quoted": "text lines", "block": "text\u00b7\u00aelines\n" }
折行
折行允許為了可讀性而斷開長行。更多數量的短行意味著更好的可讀性。透過記錄長行的原始語義來實現折行。以下示例演示了折行:
%YAML 1.1 --- !!str "specific\L\ trimmed\n\n\n\ as space"
您可以看到以下 JSON 格式的折行輸出:
"specific\u2028trimmed\n\n\nas space"
廣告