📜  YAML-基础(1)

📅  最后修改于: 2023-12-03 15:06:05.768000             🧑  作者: Mango

YAML-基础

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

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可以轻松地表达复杂的数据类型,是程序员必知必会的一种语言。