arc:enum キーワードを使用して、アイテム内のアトリビュート、区切りリスト、指定された値の範囲、または複数値のアトリビュートの値を列挙します。arc:enum のボディは、反復されるセットのエレメントごとに実行されます。
パラメータ
- item:アトリビュートを反復するアイテムの名前。
- attr:どのアトリビュートを反復するかを指定する、マッチするエクスプレッション。例えば、
arc:*です。このパラメータを指定して、複数値のパラメータの値を反復することもできます。 - prefix:アイテムが列挙される基になる接頭辞。
- expand:複数値のアトリビュートが検出された場合に、どのように
arc:enumが挙動するかを指定するboolean 値。expand がtrueに設定されている場合、arc:enumのボディはアトリビュートのそれぞれの値につき一度づつ実行されます。falseの場合、すべての値は1つの文字列値として結合され、一度の反復が実行されます。デフォルトで、arc:enumはすべての値をexpand しません。 - sep[arator]:expand パラメータが
falseの場合に、複数値のアトリビュートの値を結合させるために使われるセパレータ。このパラメータは、listseparator が定義されていない場合にリストの値をトークン化するためにも使われます。デフォルト値は改行文字(\n)です。 - list:列挙する区切られた値のリスト。例えば、値のリストが
violet, indigo, blue, green, yellow, orange, redで、セパレータがカンマ(,)の場合、arc:enumのスコープは虹の色ごとに実行されます。 - range:昇順、降順で列挙される数字もしくは文字の範囲。例えば、
a..zやZ..Aです。
range またはitem パラメータのいずれかを指定できますが、両方指定することはできません。アトリビュートは、アルファベット順に列挙されます。
アトリビュートの制御
- _attr:反復されるアトリビュートの名前。複数値のアトリビュートの値を反復している場合、名前の一部としてindex を持つ以外はアトリビュート名は同じです。Index は、ハッシュ記号(
#)で名前と区別されます。例えば、name#1、name#2、などです。 - _index:アイテムでアトリビュートが出現するindex、もしくはリストエレメントが現在列挙されている位置。
- _value:反復されるアトリビュートの値。複数値のアトリビュートでは、expand およびseparator 設定は、_value が1つのアトリビュート値の参照なのか、すべてのアトリビュート値の参照なのかを決定します。
- _count:アトリビュート内またはリスト内の値の数。
- _separator:リスト内の値を区切るセパレータ。
例
input と名付けられたアイテムのアトリビュート名とアトリビュート値を表示します:
colors アトリビュートで指定された色をリストします:
a からz、Z からA までの文字セットと、1 から25 までの数字をリストします:
true に設定します: