ペアになっている式の引数のリストの最初の真の真理値を持つ式に関連付けられている値を返します。
$SELECT関数のフォーマット:
$S[ELECT](tvexpr:expr[,...])
$SELECT() は、左から右へ式を評価します。
もし真理値の式がTRUE(1)の場合、$SELECT() はコロン (:) の区切り文字の後に対応する式を返します。
一旦$SELECT() がTRUEを見つけると、関数は残りの引数を処理しません。
もし$SELECT() が引数のそのリストに真理値 TRUEが見つからない場合、関数は実行時エラーを生成します。
$SELECT() は $TESTに影響しません。
$SELECT() は任意個数の引数を許可する、限られた関数のセットの一つです。$SELECT() は、選択肢のリストから選択する手段を提供します。
一般的に、最後の$SELECT() の引数は、実行時エラーを防ぎ "デフォルト" 値を提供するために、真理値の数値リテラル1(1)を持ちます。
例:
GTM>for i=3:-1:0 write !,$select(i=1:"here",i=2:"come",i=3:"Watson") Watson come here %GTM-E-SELECTFALSE, No argument to $SELECT was true GTM>
このループは、一連の文字列をWRITEする$SELECT()を使用しています。 i=0 の時、4回目の繰り返しでは真の引数は存在しないので、$SELECT() はエラーを生成します。
例:
set name=$select(sex="M":"Mr. ",sex="F":"Ms. ",1:"")_name
この例では、変数 sex に保持されている性別コードに基づいて、名前に接頭辞を追加するには、SELECT$() を使用しています。デフォルトが、存在しないか、または、不正なコードのケースを扱うことに注意してください。
例:
if $select(x=+x:x,x="":0,"JANAPRJULOCT"[x:1,1:0) do THING
これは、IFコマンドに真理値式の引数として、複雑なロジックを実行する$SELECT() を使用しています。