不同项目用不用语言去写配置文件是真的烦,什么XML,CFG,YAML
我看着这个大哥的学习的 http://www.ruanyifeng.com/blog/2016/07/yaml.html
YAML是"YAML不是一种标记语言";但为了强调这种语言以数据做为中心,而不是以置标语言为重点。它是一种直观的能够被电脑识别的数据序列化格式,是一个可读性高并且容易被人类阅读,容易和脚本语言交互,用来表达资料序列的编程语言。
它是类似于标准通用标记语言的子集XML的数据描述语言,语法比XML简单很多。
YAML的基本语法:
- 大小写敏感
- 使用缩进表示层级关系
- 缩进时不允许使用Tab键,只允许使用空格。
- 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
#
表示注释,从这个字符一直到行尾,都会被解析器忽略。
YAML 支持的数据结构
- 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
- 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
- 纯量(scalars):单个的、不可再分的值
下面一次介绍一下,对象,数组,存量
对象:
一组键值 version: 1.0 author: { name: Arron, sex: boy }
数组:
- Cat
- Dog
- Goldfish
数据结构的子成员是一个数组
-
- Cat
- Dog
- Goldfish
对象可以跟数组混合使用:
Name:
- Arron
- Jack
纯量:纯量是最基础的值,不可分割
整数: int: 12 float:12.0
布尔值:bool: true bool: false
Null: Null: ~(Null 用~表示)
时间:iso8601: 2001-12-14t21:59:43.10-05:00(采用iso8601格式)
日期:date: 1976-07-31
字符串:
str: 这是一行字符串(默认不带引号,除非带有特殊字符或者空格)
str: '内容: 字符串\n'
#单引号之中如果还有单引号,必须连续使用两个单引号转义,#用来注释
多行字符串可以使用|
保留换行符,也可以使用>
折叠换行。
this: |
hi
Arron
this: >
Hello
Jack
&
用来建立锚点(defaults
),<<
表示合并到当前数据,*
用来引用锚点
defaults: &defaults
adapter: postgres
host: localhost
development:
database: myapp_development
<<: *defaults
test:
database: myapp_test
<<: *defaults
defaults:
adapter: postgres
host: localhost
development:
database: myapp_development
adapter: postgres
host: localhost
test:
database: myapp_test
adapter: postgres
host: localhost