概述
目录
- 一、YAML 简介
- 二、基本语法
- 三、数据类型
- 1.对象
- 2.数组
- 3.纯量
- 4.复合结构
- 5.引用
一、YAML 简介
YAML 是 “YAML Ain’t a Markup Language”(YAML 不是一种标记语言)的递归缩写。在开发这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)。
YAML 是一种以数据为中心的标记语言,比 XML 和 JSON 更适合作为配置文件。
YAML 的配置文件后缀为 .yml,如:application.yml 。
二、基本语法
- 大小写敏感
- 使用缩进表示层级关系
- 缩进不允许使用tab,只允许空格
- 缩进的空格数不重要,只要相同层级的元素左对齐即可
- ‘#’ 表示注释
三、数据类型
YAML 支持以下三种数据类型:
- 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
- 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
- 纯量(scalars):单个的、不可再分的值
1.对象
对象键值对使用冒号结构表示 key: value,冒号后面要加一个空格。
YAML 为对象提供了 2 种写法:
- 普通写法,使用缩进表示对象与属性的层级关系:
redis:
host: 192.168.1.111
port: 6379
password: 123456
- 行内写法:
redis: {host: 192.168.1.111,port: 6379,password: 123456}
较为复杂的对象格式,可以使用问号加一个空格代表一个复杂的 key,配合一个冒号加一个空格代表一个 value:
?
- complexkey1
- complexkey2
:
- complexvalue1
- complexvalue2
即对象的属性是一个数组 [complexkey1,complexkey2],对应的值也是一个数组 [complexvalue1,complexvalue2]
2.数组
YAML 使用 “-” 表示数组中的元素,也有两种写法:
- 普通写法如下:
persons:
- zhangsan
- lisi
- wangwu
- 行内写法:
persons: [zhangsan,lisi,wangwu]
3.纯量
纯量是最基本的,不可再分的值,包括字符串、布尔值、整数、浮点数、Null、时间、日期。
- 字符串
string:
- 你好
- 'Hello world' #可以使用双引号或者单引号包裹特殊字符
- newline
newline2 #字符串可以拆成多行,每一行会被转化成一个空格
默认情况下字符串不需要使用单引号或双引号:
name: zhangsan
若字符串使用单引号,则会转义特殊字符:
name: 'zhangsan n lisi'
输出结果为:
zhangsan n lisi
若字符串使用双引号,则不会转义特殊字符,特殊字符会输出为其本身想表达的含义
name: "zhangsan n lisi"
输出结果为:
zhangsan
lisi
- 布尔值
boolean:
- TRUE #true,True 都可以
- FALSE #false,False 都可以
- 整数
int:
- 123
- 0b1010_0111_0100_1010_1110 #二进制表示
- 浮点数
float:
- 3.14
- 6.8523015e+5 #可以使用科学计数法
- Null
null:
nodeName: 'node'
parent: ~ #使用~表示null
- 时间
datetime:
- 2022-04-28T12:02:31+08:00 #时间使用ISO 8601格式,时间和日期之间使用T连接,最后使用+代表时区
- 日期
date:
- 2022-04-28 #日期必须使用ISO 8601格式,即yyyy-MM-dd
4.复合结构
以上三种数据结构可以任意组合使用,构成复合结构,以实现不同的用户需求,例:
persons:
- zhangsan
- lisi
- wangwu
redis:
host: 192.168.1.111
port: 6379
password: 123456
5.引用
当 YAML 文件中出现多个重复内容时,可以通过 锚点& 与引用* 实现引用锚点处内容的功能,从而在修改时,只需要修改锚点处的内容,即可在所有引用处生效。
& 用来建立锚点(defaults),<< 表示合并到当前数据,* 用来引用锚点。
有两种方式实现,通过 << 符号 和 不通过 << 符号。
- 通过 << 符号
defaults: &defaults
host: 192.168.1.111
port: 6379
dev:
database: dev_db
<<: *defaults
prod:
database: prod_db
<<: *defaults
相当于:
defaults:
host: 192.168.1.111
port: 6379
dev:
database: dev_db
host: 192.168.1.111
port: 6379
prod:
database: prod_db
host: 192.168.1.111
port: 6379
- 不通过 << 符号
直接在键后设置锚点,然后空格设置值,这样在引用时,只引用值,而键名可以自己设置,不用和锚点一致:
defaults:
host: &host 192.168.1.111
port: &port 6379
dev:
database: dev_db
host: *host
port: *port
prod:
database: prod_db
host: *host
port: *port
最后
以上就是朴实招牌为你收集整理的YAML基础使用教程(单引号和双引号的区别)一、YAML 简介二、基本语法三、数据类型的全部内容,希望文章能够帮你解决YAML基础使用教程(单引号和双引号的区别)一、YAML 简介二、基本语法三、数据类型所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复