YAML – 流样式

YAML – 流样式

什么是 YAML?

YAML(YAML Ain’t Markup Language 的缩写)是一种轻量级的数据序列化格式。它最初是为了给 Ruby 应用程序提供一种更人性化的配置文件格式而开发的,但 YAML 是一种通用格式,现在被众多编程语言所支持。

与 XML 和 JSON 不同,YAML 的主要设计目标是可以被人类轻松地理解和编辑。它的语法最为简洁,不需要太多额外的标记符号,同时也有很好的可读性和可扩展性。

现在,YAML已经广泛应用于各种领域,如配置文件、数据存储、REST API 的交互等。

流样式

在 YAML 中,为了更加灵活地解析和表示数据,引入了多种写法方式,其中流样式就是其中之一。

流样式是一种直观、易读的表现方式,它可以让 YAML 数据的表现形式更加紧凑。流样式将 YAML 数据表示为一个序列的流,使用逗号分隔符来表示不同的元素,使用方括号([])表示序列,使用大括号({})表示映射。

下面是一个使用流样式的示例:

# 嵌套映射
- {name: John Smith, age: 25, address: {city: New York, state: NY}}

# 非嵌套映射
- name: John Smith, age: 25, address: {city: New York, state: NY}

# 明确键值对
- {name: John Smith, age: 25, city: New York, state: NY}

在这个示例中,我们可以看到使用流样式的优点:将嵌套映射和非嵌套映射都表示为相同的方式,容易理解和阅读。同时,使用明确的键值对表示方式,也让数据变得更加紧凑。

YAML 的数据类型

在 YAML 中,数据有三种类型:标量(Scalar)、序列(Sequence)和映射(Mapping)。其中,标量是指一般数据类型,例如字符串、数字、布尔值等;序列是指一组按照一定顺序排列的数据,使用中括号([])表示;映射是指一组由属性和值组成的数据,使用大括号({})表示。

YAML 的标量数据类型比 JSON 更加丰富,它可以表示日期、时间、正则表达式等数据类型,同时也支持使用 null 关键字表示空值。

下面是一个示例,展示了不同数据类型在 YAML 中的表达方式:

# 标量数据类型示例
name: John Smith
age: 25
isMarried: false
birthdate: 1980-01-01
regExp: /[A-Z]+/

# 序列数据类型示例
fruits:
  - Apple
  - Banana
  - Pineapple
  - Kiwi

# 映射数据类型示例
person:
  name: John Smith
  age: 25
  address:
    city: New York
    state: NY

YAML 的注释

注释在 YAML 中的作用与其他编程语言中一样,用于解释代码和增加代码的可读性。在 YAML 中,注释可以出现在行的任意位置。注释以井号(#)开头,后面跟随注释内容。

下面是一个使用注释的示例:

# Example YAML file
# Created: 2021-07-01
# Author: John Smith

person:
  # Person name
  name: John Smith

  # Person age
  age: 25

  # Address information
  address:
    # City name
    city: New York

    # State name
    state: NY

YAML 的引用

在 YAML 中,引用用于在后续部分引用先前定义的键值对、映射或序列。引用使用 & 符号表示,被引用的键值对、映射或序列使用 * 符号表示。

下面是一个使用引用的示例:

# 引用示例
person: &person
  name: John Smith
  age: 25

address:
  <<: *person
  city: New York
  state: NY

在这个示例中,person 映射定义了一个名为 “John Smith” 的人,address 映射使用了 << 符号从 person 映射继承了 nameage 属性,然后定义了自己的 citystate 属性。

YAML 的多行

YAML 中的多行用于表示比较大的、复杂的数据。YAML 支持两种不同的多行格式:折叠型和字面型。

折叠型多行使用 > 符号表示,它将多行文本折叠成一行,并忽略首尾空格、换行符:

# 折叠型多行示例
description: >
  Lorem ipsum dolor sit amet, consectetur adipiscing elit.
  Quisque nec ipsum vel urna aliquet vehicula.
  Sed convallis elit eu lorem auctor, in varius odio faucibus.

字面型多行使用 | 符号表示,它以精确的方式展示多行文本,保留文本中的每一个换行符和空格符:

# 字面型多行示例
example: |
  First line
  Second line
  Third line

结论

在本文中,我们介绍了 YAML 的流样式,这是一种更加紧凑、易读的数据表现方式。我们还介绍了 YAML 的数据类型、注释、引用和多行。这些特性和语法使得 YAML 成为一种非常灵活且易用的数据序列化格式,被广泛地应用在各类编程应用和系统中。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程