[Docker一马平川]YAML语言简述

YAML 是一种书写配置文件的语言. 其本质是对数据对象的序列化表达.

YAML 的结构和 JSON 类似, 不过 JSON 是面向于程序解析逻辑设计的序列化文本语言, 虽然其简洁的编码风格已经十分便于人类阅读. 但在手动书写时候还是会使人感到冗长.

YAML 则是针对人类书写习惯设计的语言, 它既符合人类直观表达结构化信息的表达方式. 有能以严谨的逻辑通过文本记录下抽象的结构信息.

YAML 语法简单, 遵循以下原则:

  1. 使用空格缩进和对齐, 具有相对缩进关系的行存在结构上的嵌套关系.
  2. 区分大小写.
  3. 使用 # 符号申明注释行.
  4. 配置项均为键值对, 键值可以是 纯量 / 数组 / 对象 .

举个栗子:

# 字符串类型的键值对. 键名不需要加引号.
name: "HsiangYu.Ku"
# 数组类型的键值对. 键值使用 `-` 号标记, 每行一个元素, 行首需要缩进.
fullname:
  - "Hsiang"
  - "Yu"
  - "Ku"
# 这里的 age 和上边的 name 类似, 也是一个纯量.
# 区别在于 name 是字符串类型, age 是数值类型.
age: 18
# 对象类型键值对. 该类型最普遍, 对象 `services` 有两个成员 `php` 和 `mysql`.
services:
  php: "7.0"
  mysql: "3.6"

如上述案例, 即配置一个结构等价于如下 JS 的结构对象

{
  name: 'HsiangYu.Ku',
  fullname: ['Hsiang', 'Yu', 'Ku'],
  age: 18,
  services: {
    php: '7.0',
    mysql: '3.6'
  }
}