Yaml基础语法与技巧
- 字符支持:YAML支持Unicode字符集,可以使用UTF-8、UTF-16、UTF-32字符集
date: 2020-06-28
info:
- name: Marionxue
tags:
- num: 1
- descript: "writing somthing here"
- 缩进:YAML中缩进是非常重要的规范,不支持Tab,支持空格,没有严格要求空格个数,但是需要确保同一层次的左侧对齐
- 单行注释:单行注释使用
#
进行标记,可以在单行的任何位置开始注释的内容 - 多行注释:不提供特殊的多行注释,使用多行行首的单行注释#实现多行注释的需求
info:
# 下面是两个空格,然后一个短横线
- name: Marionxue
- 基本数据类型:支持
整型
、浮点型
、时间戳类型
、Null
等基本数据类型 - 组合数据类型:支持
键/值
方式和列表
类型,并可进行嵌套组合
- 键/值方式:使用冒号
:
进行分隔,也可使用{}
结合逗号进行表达 - 列表类型:使用横线
-
进行分隔,也可使用[]
结合逗号
进行表达 - 开始符号:
---
用于表示开始的符号,在一个文件中包含多个YAML设定的时候使用非常常见。 - 结束符号:
…
用于表示yaml文件结束
--- # start
- [blue, red, green] #list
- [Age, Bag]
- site: {osc:www.oschina.net, baidu: www.baidu.com} # key/value list
- describle: |
Hi,all:
my name is xxx.
- code: >
fmt.Println("姓名: %s",
name)
- 单引号与双引号:字符串类型可以不使用单引号和双引号,使用单引号和双引号与不使用的时候在特殊字符及其转义的时候有些细微的区别,可用倒斜线(\)进行特殊字符转义
区块的字串用缩排和修饰词(非必要)来和其他资料分隔,有新行保留(使用符号|)或新行折叠(使用符号>)两种方式
|
表示保留区块中的回车换行>
表示将区块中的回车换行替换为空行,最终连成一行
- 强制类型转换:可以使用
!!
用于强制类型转换 - 重复性内容:可以使用锚点标记&和应用标记*结合使用可以处理重复性的内容
- 保留字符:@和`为当前YAML规格的保留字符
- 较长的描绘性说明:使用
|
与>
以及>-
来处理常见的对于较长的描绘性说明的要求 - 空白字符限制:在使用逗号及冒号时,后须接一个空白字符
- YAML使用可打印的Unicode字符,可使用UTF-8或UTF-16
- 使用空白字符(不能使用Tab)分层,同层元素左侧对齐
- 单行注解由井字号( # )开始,可以出现在行中任何位置
- 每个清单成员以单行表示,并用短杠+空白(- )起始
- 每个杂凑表的成员用冒号+空白(: )分开键和值
- 杂凑表的键值可以用问号 (?)起始,表示多个词汇组成的键值
- 字串一般不使用引号,但必要的时候可以用引号框住
- 使用双引号表示字串时,可用倒斜线(\)进行特殊字符转义
- 区块的字串用缩排和修饰词(非必要)来和其他资料分隔,有新行保留(使用符号|)或新行折叠(使用符号>)两种方式
- 在单一档案中,可用连续三个连字号(---)区分多个档案
- 可选择性的连续三个点号(...)用来表示档案结尾(在流式传输时非常有用,不需要关闭流即可知道到达结尾处)
- 重复的内容可使从参考标记星号 (*)复制到锚点标记(&)
- 指定格式可以使用两个惊叹号 ( !! ),后面接上名称