変数設定値における単純置換変数参照の構文は、入力ソースの場合と同じです。
:[varname] |
この場合、参照する変数名が、参照が含まれる変数より先に宣言されていなければなりません。この制約によって、参照の循環が防止されます。
派生コンポーネントの場合、ベースコンポーネントから継承した値が、親での宣言順に従って先に展開されます。その後、ローカルの非オーバーライド変数が宣言された順に展開されます。継承した値を無効にするローカル変数は、継承値の展開順序と同じ順で継承値の代わりに展開されます。したがって、オーバーライド変数が参照できるのは、すでに宣言されているほかの継承変数またはオーバーライド変数だけです。たとえば、ベースコンポーネント A が x と y という変数を宣言するとします。さらに、派生コンポーネント B が変数 z と y を宣言します。コンポーネント B で変数が評価される順番は、コンポーネント A から継承した x、続いてコンポーネント B によってオーバーライドされた y、最後にコンポーネント B のローカル変数である z です。
次の表に、置換変数、対応する展開後の値、未展開の値の例を示します。
変数名 |
未展開の値 |
展開後の値 |
---|---|---|
foo |
silly |
silly |
bar |
:[foo] |
silly |
baz |
a :[foo] :[bar] example |
a silly silly example |
badFrob |
:[frob] |
エラー – 順参照 |
frob |
:[[foo] |
:[foo] |
compName |
:[sys.name] |
ターゲットコンポーネント名 |
badFoz |
:[foz] |
エラー – foz が未宣言 |