YAML 缩进和分隔
缩进和分隔是学习任何编程语言时的两个主要概念。本章详细介绍了与YAML相关的这两个概念。
YAML的缩进
YAML不包括任何强制性的空格。此外,也不需要保持一致。下面是有效的YAML缩进示例:
a:
b:
- c
- d
- e
f:
"ghi"
- 在处理YAML缩进时,你应该记住以下规则:流块必须至少使用当前块级周围的一些空格进行缩进。
-
YAML的流内容可以跨多行。流内容的开头以 { 或 [ 开始。
-
块列表项包括与周围块级相同的缩进,因为”-“被认为是缩进的一部分。
缩进块的示例
观察以下代码,其中显示了示例的缩进:
--- !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.
字符串分隔
字符串使用双引号进行分隔。如果在给定的字符串中转义换行符,它将被完全删除并转换为空格。
示例
在这个示例中,我们专注于以字符串作为数据类型的数组结构中动物的列表。每个新元素都以前缀连字符列出,如前缀所述。
-
- 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新手理解。