YAML锚点与别名报错:映射项缩进不一致问题求助
正确的YAML锚点复用写法
你遇到的问题是因为YAML不支持直接在映射中把别名和其他键值对并列,要实现复用父结构并添加属性,得用YAML的合并键<<来完成。
正确写法如下:
Thing1: &asdf setting: thingy Extension: <<: *asdf another: wow
为什么之前的写法不对?
- 第一种写法里,
*asdf直接放在Extension的映射下,但它没有对应的键,不符合YAML映射“键: 值”的结构规范,所以触发缩进和结构错误。 - 第二种写法把
*asdf直接赋值给Extension,后面又缩进写another: wow,YAML会认为another是Extension的子项,但此时Extension已经被设置为Thing1的映射内容,结构冲突导致报错。
用<<: *asdf的方式,YAML会自动将锚点指向的Thing1映射内容合并到Extension的映射中,最终Extension会同时包含setting: thingy和another: wow两个属性,完全符合语法要求。
内容的提问来源于stack exchange,提问作者gkeating
相关产品推荐
相关产品推荐

