📅  最后修改于: 2023-12-03 15:06:05.768000             🧑  作者: Mango
YAML是一种简洁的数据序列化语言。它的全称是YAML Ain't Markup Language(YAML不是标记语言),是一种人类可读的数据格式。YAML具有优美的语法结构和清晰的表现方式,可以轻松地表达复杂的数据类型。
在YAML中,数据是按键值对方式表示。键值对用冒号“:”分隔,键值对之间用空格或换行分隔。下面是一个简单的YAML示例:
name: John Doe
age: 30
email: johndoe@example.com
在上面的示例中,“name”、“age”和“email”都是键,“John Doe”、“30”和“johndoe@example.com”都是对应的值。注意,键和值之间必须有一个冒号分隔。
YAML支持多种基本数据类型,包括字符串、数字、布尔值、null和时间戳。
字符串可以用单引号或双引号括起来。单引号和双引号都表示字符串,但双引号可以对字符串进行转义,可以包含特殊字符。
name: 'John Doe'
age: "30"
email: "johndoe@example.com"
数字可以是整数或浮点数。在YAML中,整数可以用任何数字表示法表示:十进制、八进制、十六进制等。
year: 2019
price: 9.99
octal: 0o10
hexadecimal: 0x10
布尔值可以用true或false表示。
is_male: true
is_working: false
null表示空值。在YAML中,null可以用~(也可以用null)表示。
foo: ~
bar: null
时间戳表示时间。在YAML中,时间戳可以用ISO 8601格式表示。
created_at: 2019-09-01T12:00:00Z
updated_at: 2019-09-02T12:00:00+08:00
YAML支持多种复杂数据类型,包括数组、对象、字面块等。
数组可以包含多个值,用中括号“[]”表示。数组的每个元素之间用逗号分隔。
fruits:
- apple
- banana
- orange
对象可以包含多个键值对,用花括号“{}”表示。对象的每个键值对之间用冒号“:”分隔,键值对之间用逗号分隔。
person:
name: John Doe
age: 30
email: johndoe@example.com
字面块可以表示多行字符串,除了首行和末行的空格都会保留。
description: |
This is
a multi-line
string.
YAML支持对其他值的引用,用“&”表示引用,用“*”表示使用引用的值。
person:
name: &name_reference John Doe
age: 30
email: johndoe@example.com
another_person:
name: *name_reference
age: 25
email: janedoe@example.com
YAML支持单行注释和多行注释。
# This is a single line comment
person:
# This is a multiline
# comment
name: John Doe
age: 30
email: johndoe@example.com
YAML是一种灵活简洁的数据序列化语言,支持多种基本数据类型、复杂数据类型、引用和注释。使用YAML可以轻松地表达复杂的数据类型,是程序员必知必会的一种语言。