YAML语法
介绍
YAML(YAML Ain't Markup Language)是一种人类可读的数据序列化格式, 通常用于配置文件和数据交换。 它采用缩进表示层次关系,通过简单的语法实现了清晰易读的文本表示。
基本语法
键值对
YAML中的键值对使用冒号:
分隔,键值对之间使用换行分隔。
key: value
列表
YAML 中的列表使用短横线-
分隔,列表项之间使用换行分隔。
- item1
- item2
嵌套
YAML中的键值对和列表可以相互嵌套。
key:
- item1
- item2
嵌套结构
YAML中的键值对和列表可以相互嵌套,形成嵌套结构。
parent:
child1: value1
child2: value2
数据类型
YAML中的数据类型包括:字符串、整数、浮点数、布尔值、时间、日期、时间日期、列表、键值对、嵌套结构。
字符串
字符串可以使用单引号或双引号括起来,也可以直接写在一行中
str1: 'single-quoted string'
str2: "double-quoted string"
str3: plainstring
str4: |
literal string
keep line breaks
数字和布尔值
YAML中的数字与其他编程语言相似。
integer: 42
float: 3.14
布尔 值
YAML中的布尔值true
为真,false
为假。
boolean: true
boolean2: false
注释
在YAML中,使用井号(#)表示注释,注释可以出现在行的 任意位置。
# 这是一个注释
key: value # 这也是一个注释
示例
以下是一个简单的YAML文档示例,展示了上述介绍的基本语法和数据类型的使用。
string: "string"
integer: 1
float: 1.0
boolean: true
date: 2021-01-01
time: 12:00:00
datetime: 2021-01-01 12:00:00
list:
- item1
- item2
map:
key1: value1
key2: value2
nested:
parent:
child1: value1
child2: value2
格式化
缩进
YAML使用缩进表示层次关系,缩进使用空格或制表符,但不允许混用。
# 使用空格缩进
key:
- item1
- item2
# 使用Tab缩进
key:
- item1
- item2
最好使用VSCode的YAML插件,它会自动将Tab转换为空格,并且检查缩进是否正确。
进阶主题
引用
YAML支持引用方式,使得可以在文档中重复使用相同的值。
锚点
在YAML中,你可以使用锚点(&)为一个数据结构创建引用, 然后使用星号(*)在其他地方引用该结构。 这在避免重复和提高可维护性方面非常有用。
# 创建一个锚点
defaults: &defaults
key1: value1
key2: value2
# 引用锚点
config1:
<<: *defaults
key3: value3
config2:
<<: *defaults
key3: anotherValue
别名
除了使用锚点引用整个数据结构外, 你还可以使用别名(*)来引用特定的数据值。 这对于大型结构中的部分引用非常有用。
person: &person
name: John
age: 30
employee:
<<: *person
position: Developer
多行字符串
YAML中的字符串可以使用|
或>
表示多行字符串。
literal: |
literal string
keep line breaks
folded: >
folded string
remove line breaks