key: &key
のようにキーの横に&block-name
と書くとそのブロックをそれ以降で使い回せるようになります。これは場所はどこでもいいです。以下のbar
,quux
,piyo
はどれも有効です。
foo:
bar: &bar
value: value
baz:
qux:
quux: &quux
value: value
hoge:
fuga:
piyo: &piyo
オブジェクトに埋め込む
common
という共通ブロックを設定しました。
common: &common
one: one
two: two
このように<<: *block-name
という記法で使えます。
foo:
zero: zero
<<: *common
three: three
これは JSON にするとこのような感じです。foo
ブロックの中に共通ブロックのone
とtwo
を入れれました。
{
"foo": {
"zero": "zero",
"one": "one",
"two": "two",
"three": "three"
},
"common": {
"two": "two",
"one": "one"
}
}
配列に埋め込む
配列の場合は- *block-name
という記法で埋め込みます。common
は同じものを使います。また例です。
foo:
- zero: zero
- *common
- three:
value: value
JSON にするとこのような感じです。one
とtwo
というキーを持ったオブジェクトがちゃんと入っているのが分かります。
{
"foo": [
{
"zero": "zero"
},
{
"one": "one"
"two": "two",
},
{
"three": {
"value": "value"
}
}
],
"common": {
"two": "two",
"one": "one"
}
}