YAML中垂直对齐scalars值是否符合严格语法规范?
YAML中垂直对齐scalars值是否符合严格语法规范?
放心吧,这种垂直对齐scalars的写法完全符合YAML 1.2的严格语法规范!
YAML的核心语法规则里,只要求键(key)和对应的值(scalar)之间至少有一个空格来分隔开——多余的空格纯粹是为了提升可读性的格式美化,正规的YAML解析器都会自动忽略这些额外的空格,不会把它们判定为语法错误。
拿你举的例子来说,不管是未对齐的版本:
breakfast: spam: 1 hamHamHamHam: 2 eggsEggs: 3
还是对齐后的版本:
breakfast: spam: 1 hamHamHamHam: 2 eggsEggs: 3
在语法上是完全等价的,解析后得到的数据结构也一模一样。
你用知名linter验证后显示合法是准确的,不管是Python生态里的PyYAML、ruamel.yaml,还是Go生态里的yaml解析库,都会正确处理这种格式。YAML 1.2.2规范里确实没有限制键值对之间的空格数量,只要满足“至少一个分隔空格”的最低要求,怎么加空格美化都没问题。
这种对齐写法在团队协作里反而很受欢迎,能让长列表的键值对更易读,完全不用担心哪天会因为这个格式导致代码报错,放心用就好~
备注:内容来源于stack exchange,提问作者lonix
相关产品推荐
相关产品推荐

