我是靠谱客的博主 朴实招牌,最近开发中收集的这篇文章主要介绍YAML基础使用教程(单引号和双引号的区别)一、YAML 简介二、基本语法三、数据类型,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

  • 一、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 。

二、基本语法

  1. 大小写敏感
  2. 使用缩进表示层级关系
  3. 缩进不允许使用tab,只允许空格
  4. 缩进的空格数不重要,只要相同层级的元素左对齐即可
  5. ‘#’ 表示注释

三、数据类型

YAML 支持以下三种数据类型:

  1. 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
  2. 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
  3. 纯量(scalars):单个的、不可再分的值

1.对象

对象键值对使用冒号结构表示 key: value,冒号后面要加一个空格。

YAML 为对象提供了 2 种写法:

  1. 普通写法,使用缩进表示对象与属性的层级关系:
redis:
  host: 192.168.1.111
  port: 6379
  password: 123456
  1. 行内写法:
redis: {host: 192.168.1.111,port: 6379,password: 123456}

较为复杂的对象格式,可以使用问号加一个空格代表一个复杂的 key,配合一个冒号加一个空格代表一个 value:

?  
  - complexkey1
  - complexkey2
: 
  - complexvalue1
  - complexvalue2

即对象的属性是一个数组 [complexkey1,complexkey2],对应的值也是一个数组 [complexvalue1,complexvalue2]

2.数组

YAML 使用 “-” 表示数组中的元素,也有两种写法:

  1. 普通写法如下:
persons:
  - zhangsan
  - lisi
  - wangwu
  1. 行内写法:
persons: [zhangsan,lisi,wangwu]

3.纯量

纯量是最基本的,不可再分的值,包括字符串、布尔值、整数、浮点数、Null、时间、日期。

  1. 字符串
string:
    - 你好
    - 'Hello world'  #可以使用双引号或者单引号包裹特殊字符
    - newline
      newline2    #字符串可以拆成多行,每一行会被转化成一个空格

默认情况下字符串不需要使用单引号或双引号:

name: zhangsan

若字符串使用单引号,则会转义特殊字符:

name: 'zhangsan n lisi'

输出结果为:

zhangsan n lisi

若字符串使用双引号,则不会转义特殊字符,特殊字符会输出为其本身想表达的含义

name: "zhangsan n lisi"

输出结果为:

zhangsan 
lisi
  1. 布尔值
boolean: 
    - TRUE  #true,True 都可以
    - FALSE  #false,False 都可以
  1. 整数
int:
    - 123
    -  0b1010_0111_0100_1010_1110    #二进制表示
  1. 浮点数
float:
    - 3.14
    - 6.8523015e+5  #可以使用科学计数法
  1. Null
null:
    nodeName: 'node'
    parent: ~  #使用~表示null
  1. 时间
datetime: 
    -  2022-04-28T12:02:31+08:00    #时间使用ISO 8601格式,时间和日期之间使用T连接,最后使用+代表时区
  1. 日期
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),<< 表示合并到当前数据,* 用来引用锚点。
有两种方式实现,通过 << 符号 和 不通过 << 符号。

  1. 通过 << 符号
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
  1. 不通过 << 符号
    直接在键后设置锚点,然后空格设置值,这样在引用时,只引用值,而键名可以自己设置,不用和锚点一致:
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 简介二、基本语法三、数据类型所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部