【发布时间】:2011-06-19 23:57:31
【问题描述】:
假设我有以下 YAML 文件:
-
key1: value
# and so on...
key99: value
key100:
subkey1: value
# and so on...
subkey100: value
-
key1: value
# and so on...
key99: value
key100:
subkey1: value
# and so on...
subkey100: SOME DIFFERENT VALUE
处理大量相同数据的自然方法是使用锚点,并仅覆盖已更改的键。
问题是,这里的子键是不同的。有没有简单的方法来引用 key100['subkey100'] 的变化?还是我必须在每个级别使用一系列锚点?
即,是否有以下简称:
- &anchor
key1: value
# and so on...
key99: value
key100: &subanchor
subkey1: value
# and so on...
subkey100: value
-
<<: *anchor
key100:
<<: *subanchor
subkey100: SOME DIFFERENT VALUE
【问题讨论】:
-
这应该是一个简单的问题!普通人!
-
对于 Google 员工:诀窍是您必须使用
<<键。我刚刚在 docker-compose 文件中对此进行了测试,如果您使用<<键,那么它的行为就像您想要的那样。但是,您 不能 做的事情类似于some_object: &config...other_object: &config并希望在那里覆盖。下面的规范似乎并没有禁止这样做,因为<<键显式地将数据从别名对象中提取出来,而如果您只是直接使用别名,则处于只读状态。希望这是有道理的。
标签: yaml