ネストされた繰り返し

最終公開日 : Sep 25, 2026
ネストされた繰り返し構造を使用すると、コンポーネントの定義に応じて、各コンポーネントに複数の繰り返し構造を含めることができます。2レベルのネストされた繰り返しを考えてみましょう。外側のリスト(最初の繰り返しリスト)の各要素に対して、内側のリスト(2番目の繰り返しリスト)のすべての要素に対して繰り返しリストを作成できます。StyleBookコンパイラは最大3つのネストされた繰り返しをサポートしています。各繰り返しレベルには、関連付けられたrepeat-item属性とrepeat-index属性があります。repeat-item属性とrepeat-index属性の両方はオプションです。さらに、各繰り返しはrepeat-conditionも指定できます。
例:
parameters:

  -

      name: vips

      type: ipaddress[]

  -

      name: vip-ports

      type: tcp-port[]

components:

  -

      name: lbvservers-comp

      type: ns::lbvserver

      repeat:

         repeat-list: $parameters.vips

         repeat-item: ip

         repeat:

              repeat-list: $parameters.vip-ports

              repeat-item: port

      properties:

         name: str("lb-") + str($ip) + '-' + str($port)

         servicetype: HTTP

         ipv46: $ip

         port: $port
この例では、$parameters.vips内の各項目に対して、$parameters.vip-portsのすべての項目を反復処理します。したがって、$parameters.vipsで指定された各ipaddressに対して、$parameters.vip-portsで指定されたすべてのポートに対してlbvserver構成オブジェクトを作成します。プロパティセクションでは、IPアドレスとポートの組み合わせのプレフィックスとして「lb」を持つオブジェクトの名前を定義します。したがって、各反復で、$ip + $portはIPアドレスとポート番号の一意の組み合わせを定義します。
repeat-item属性が指定されていない場合、コンパイラはそれに対してデフォルト値を生成します。repeat-itemのデフォルト値は、各繰り返しレベルに対してそれぞれ$repeat-item、$repeat-item-1、$repeat-item-2です。同様に、repeat-index属性が指定されていない場合、コンパイラはそれに対してデフォルト値を生成します。repeat-indexのデフォルト値は、各繰り返しレベルに対してそれぞれ$repeat-index、$repeat-index-1、および$repeat-index-2です。
次の例は、ネストされた繰り返しオブジェクトにrepeat-item属性とrepeat-index属性がない場合の命名規則について説明しています。
例:
components:

-

     name: lbvservers-comp

     type: ns::lbvserver

     repeat:

         repeat-list: $parameters.vips

         repeat:

            repeat-list: $parameters.vip-ports

     properties:

        name: str("lb-") + str($repeat-item) + '-' + str($repeat-item-1)

        servicetype: HTTP

        ipv46: $repeat-item

        port: $repeat-item-1
Related information