縮進和分離是學習任何程式語言時的兩個主要概念。本章詳細討論了這兩個與YAML相關的概念。
Indentation of YAML
YAML不包含任何必需的空格。此外,沒有必要保持一致。有效的YAML縮進如下所示−
a: b: - c - d - e f: "ghi"
在YAML中使用縮進時,您應該記住以下規則:流塊必須至少包含一些與當前塊級別相關的空格。
山藥的含水量跨越多條生產線。流內容的開頭是{或[。
塊列表項包含與周圍塊級別相同的縮進,因爲-被視爲縮進的一部分。
Example of Intended Block
請注意下面的代碼,其中顯示了縮進的示例−
--- !clarkevans.com/^invoice invoice: 34843 date : 2001-01-23 bill-to: &id001 given : Chris family : Dumars address: lines: | 458 Walkman Dr. Suite #292 city : Royal Oak state : MI postal : 48046 ship-to: *id001 product: - sku : BL394D quantity : 4 description : Basketball price : 450.00 - sku : BL4438H quantity : 1 description : Super Hoop price : 2392.00 tax : 251.42 total: 4443.52 comments: > Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.
Separation of Strings
字符串用雙引號分隔。如果對給定字符串中的換行符進行轉義,將完全刪除換行符並將其轉換爲空格值。
Example
在本例中,我們重點列出了列爲數據類型爲字符串的數組結構的動物。每個新元素都以連字符作爲前綴列出。
- - Cat - Dog - Goldfish - - Python - Lion - Tiger
下面將提到另一個解釋YAML中字符串表示的示例。
errors: messages: already_confirmed: "was already confirmed, please try signing in" confirmation_period_expired: "needs to be confirmed within %{period}, please request a new one" expired: "has expired, please request a new one" not_found: "not found" not_locked: "was not locked" not_saved: one: "1 error prohibited this %{resource} from being saved:" other: "%{count} errors prohibited this %{resource} from being saved:"
這個例子指的是一組錯誤消息,用戶只需提到關鍵方面就可以使用這些消息並相應地獲取值。YAML的這種模式遵循JSON的結構,這是YAML新手可以理解的。