web-dev-qa-db-ja.com

yamlの `<<`と `&`はどういう意味ですか?

cryptogena fabric command)構成ファイルを確認すると、そこにシンボルが見えました。

Profiles:

    SampleInsecureSolo:
        Orderer:
            <<: *OrdererDefaults  ## what is the `<<`
            Organizations:
                - *ExampleCom     ## what is the `*`
        Consortiums:
            SampleConsortium:
                Organizations:
                    - *Org1ExampleCom
                    - *Org2ExampleCom

その上に2つの記号<<および*

Application: &ApplicationDefaults  # what is the `&` mean

    Organizations:

ご覧のとおり、別の記号&。どういう意味かわかりません。ソースコードを見直しても何の情報も得られなかった(fabric/common/configtx/tool/configtxgen/main.go

12
blackdog

これらは、YAMLファイル形式の要素であり、configtxgenの構成ファイルを提供するためにここで使用されます。 "&"記号はアンカーとアンカーへの "*"参照を意味します。これは基本的に、重複を避けるために使用されます。次に例を示します。

person: &person
    name: "John Doe"

employee: &employee
           : << *person
    salary : 5000

人のフィールドを再利用し、次と同様の意味を持ちます:

employee: &employee
    name   : "John Doe"
    salary : 5000

別の例は単に値を再利用することです:

key1: &key some very common value

key2: *key

に相当:

key1: some very common value

key2: some very common value

abric/common/configtx/tool/configtxgen/main.goシェルフYAMLパーサーを使用すると、configtxgen関連コードでこれらのシンボルへの参照が見つかりません。 YAMLファイル形式 についてもう少し読むことをお勧めします。

19
Artem Barger