什么是.yml文件?

知多少      30      文章来源

 YAML(Yet Another Markup Language)(发音 /ˈjæməl/ )
 一种基于Unicode容易阅读,容易和脚本语言交互的,用来表达资料序列的编程语言。

适应场景 脚本语言:由于实现简单,解析成本很低,YAML 特别适合在脚本语言中使用 序列化: YAML是由宿主语言数据类型直转,的比较适合做序列化。 配置文件:写 YAML 要比写 XML 快得多(无需关注标签或引号),并且比 INI 文档功能更强。由于兼容性问题,不同语言间的数据流转建议不要用 YAML。 语言优点 YAML易于人们阅读。 YAML数据在编程语言之间是可移植的。 YAML匹配敏捷语言的本机数据结构。 YAML具有一致的模型来支持通用工具。 YAML支持单程处理。 YAML具有表现力和可扩展性。 YAML易于实现和使用。 YAML 语法 使用空格 Space 缩进表示分层,不同层次之间的缩进可以使用不同的空格数目,但是同层元素一定左对齐,即前面空格数目相同(不能使用 Tab,各个系统 Tab对应的 Space 数目可能不同,导致层次混乱) ‘#’表示注释,只能单行注释,从#开始处到行尾 破折号后面跟一个空格(a dash and space)表示列表 用冒号和空格表示键值对 key: value 简单数据(scalars,标量数据)可以不使用引号括起来,包括字符串数据。用单引号或者双引号括起来的被当作字符串数据,在单引号或双引号中使用C风格的转义字符 Sequence of Scalars  简单数据列表

- Mark McGwire - Sammy Sosa - Ken Griffey


Mapping Scalars to Scalars 简单数据键值对以及注释

hr: 65 # Home runs avg: 0.278 # Batting average rbi: 147 # Runs Batted In


Mapping Scalars to Sequences 简单数据列表键值对

american: - Boston Red Sox - Detroit Tigers - New York Yankees national: - New York Mets - Chicago Cubs - Atlanta Braves

Sequence of Mappings 键值对列表 

- name: Mark McGwire hr: 65 avg: 0.278 - name: Sammy Sosa hr: 63 avg: 0.288


YAML 还支持流类型,用中括号括起来表示列表,用逗号分隔元素;用大括号括起来表示键值对,用逗号分隔元素。 
Sequence of Sequences 列表的列表 

- [name , hr, avg ] - [Mark McGwire, 65, 0.278] - [Sammy Sosa , 63, 0.288]

 Mapping of Mappings  键值对的键值对

Mark McGwire: {hr: 65, avg: 0.278} Sammy Sosa: { hr: 63, avg: 0.288 }

 

适应场景

脚本语言:由于实现简单,解析成本很低,YAML 特别适合在脚本语言中使用
序列化: YAML是由宿主语言数据类型直转,的比较适合做序列化。
配置文件:写 YAML 要比写 XML 快得多(无需关注标签或引号),并且比 INI 文档功能更强。由于兼容性问题,不同语言间的数据流转建议不要用 YAML。
语言优点

YAML易于人们阅读。
YAML数据在编程语言之间是可移植的。
YAML匹配敏捷语言的本机数据结构。
YAML具有一致的模型来支持通用工具。
YAML支持单程处理。
YAML具有表现力和可扩展性。
YAML易于实现和使用。
YAML 语法

使用空格 Space 缩进表示分层,不同层次之间的缩进可以使用不同的空格数目,但是同层元素一定左对齐,即前面空格数目相同(不能使用 Tab,各个系统 Tab对应的 Space 数目可能不同,导致层次混乱)
‘#’表示注释,只能单行注释,从#开始处到行尾
破折号后面跟一个空格(a dash and space)表示列表
用冒号和空格表示键值对 key: value
简单数据(scalars,标量数据)可以不使用引号括起来,包括字符串数据。用单引号或者双引号括起来的被当作字符串数据,在单引号或双引号中使用C风格的转义字符



标签: Yml