2

.yml特定のケースに応じて設定される変数に動的プロパティを設定することは可能ですか。例えば:

MY_VAR: &MY_VAR
  keys:
   key2: blahblahblah
   key3: blahblahblah  # only apply this for section2, not section1

section1: 
 var: *MY_VAR

section2:  # this case needs key3 set, otherwise everything else is the same 
 var: *MY_VAR
4

1 に答える 1

1

YAML のアンカー ( &MY_VAR) と参照 ( *MY_VAR) は、重複を防ぐためだけでなく、階層内で複数回発生するオブジェクトのシリアル化を許可し、それらがメモリ内の同じ構造を再び指すように逆シリアル化できるようにするために仕様に含まれています。

これは、パラメーターや条件を使用した文字列レベルのマクロ機能ではありません。あなたの例では、設定MY_VAR->key1した場合、値も変更しますsection1->var->key1

もちろん、アプリケーションはロードした値を解釈できます (たとえば、マッピングのキーのスカラーを形成する複雑な文字列)。ただし、YAML 仕様にはそのための機能はありません。これは、アプリケーション レベルで実行する必要があります (実行可能です)。

于 2015-06-18T06:14:29.913 に答える