YAML の << (二重左矢印) 構文は何と呼ばれ、どこで指定されますか? 質問する

YAML の << (二重左矢印) 構文は何と呼ばれ、どこで指定されますか? 質問する

YAMLの演算子は、Pythonのダブルスプラット演算子やJavaScriptのオブジェクト分解演算子<<:と同様に、あるマッピングの内容を別のマッピングにインポートするために使用できます。たとえば、**...

foo:
  a: b
  <<:
    c: d
  e: f

は以下と同等である

foo:
  a: b
  c: d
  e: f

これは、ノードアンカー多くのオブジェクトに共通のデフォルトプロパティを含める。例えば、Y 分で YAML を学ぶチュートリアル:

# Anchors can be used to duplicate/inherit properties
base: &base
    name: Everyone has same name

foo: &foo
    <<: *base
    age: 10

bar: &bar
    <<: *base
    age: 20

しかし、この構文がどこから来たのか、なぜ機能するのかについては混乱していますCTRLFYAML仕様<<、仕様のどこにも記載されていないことを示しています。しかし、少なくとも、pyYAML とはそしてオンライン YAML パーサー

この構文とは何ですか? また、なぜ仕様には記載されていないのでしょうか?

ベストアンサー1

これはYAMLバージョン1.1のマージキー言語非依存型と呼ばれ、ここ

これはパーサーがオプションでサポートできるもので、基本的には特殊キーを使用したキーと値のペアの解釈です<<。値はマッピング (通常は仕様にあるようにエイリアスで示されますが、必須ではないようですが、エイリアスを使用しないことにはほとんど意味がありません) またはマッピングのリスト (つまり、マッピングのエイリアス) のいずれかであり、特別な方法で解釈されます。

おすすめ記事