YAML 语法整理
【摘要】 YAML(YAML Ain't Markup Language)是一种人类可读的数据序列化语言,广泛用于配置文件和数据交换。它以其简洁、易读和易写的特性而受到开发者的青睐。以下是对YAML的详细介绍,包括基本概念、语法规则、常见用法以及字面量和折叠风格的处理。
1. 基本语法
-
键值对: 形式为
key: value。冒号后要留一个空格。name: John age: 30 -
注释: 使用
#,可以注释一行或部分行。# 这是一个注释 name: John # 这里也是注释
2. 缩进
YAML 使用缩进表示层级关系,缩进只能使用空格,推荐使用 2 个空格。
person:
name: John
age: 30
3. 数据类型
字符串
-
字符串可以直接写,也可以用单引号
'或双引号"包裹。 -
若字符串包含特殊字符,如
:或换行符,需用引号。message: "Hello: World!" single_quote: 'YAML is easy' multiline: | This is a multi-line string.
布尔值
-
使用
true/false或yes/no来表示布尔值。is_admin: true active: yes
数字
-
整数、浮点数可以直接写。
age: 30 height: 1.75
列表
-
使用
-表示列表项,每项缩进相同。fruits: - apple - banana - orange
字典
-
嵌套的键值对可以直接缩进表示。
person: name: John age: 30 contact: email: john@example.com phone: 123456789
4. 复杂数据结构
列表中的字典
employees:
- name: John
age: 30
- name: Jane
age: 25
字典中的列表
languages:
programming:
- Python
- JavaScript
spoken:
- English
- Chinese
5. 锚点和引用
YAML 允许使用锚点 & 和别名 * 来复用相同的数据结构。
default: &default_values
name: John
age: 30
user:
<<: *default_values
role: admin
6. 特殊表示法
字符串块样式
-
使用
|表示保留换行的多行字符串。description: | This is a description with multiple lines. -
使用
>表示折叠换行的多行字符串。description: > This is a description that will be rendered in a single line.
7. Null 值
-
使用
null或~表示空值。middle_name: null nickname: ~
8. 常用用例
配置文件
YAML 常用于配置文件,例如:
server:
host: localhost
port: 8080
database:
user: admin
password: secret
timeout: 30
K8s 配置
Kubernetes 的资源配置也常使用 YAML 文件。
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: my-container
image: nginx
ports:
- containerPort: 80
总结
- 使用空格缩进表示层级关系。
- 字典用
key: value表示,列表用-表示。 - 可以通过锚点和别名复用数据结构。
- 支持多行字符串、布尔值、数字等多种数据类型。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)