$QSUBSCRIPT (ObjectScript)
Synopsis
$QSUBSCRIPT(namevalue,intexpr) $QS(namevalue,intexpr)
引数
引数 | 説明 |
---|---|
namevalue | 文字列、もしくは文字列と評価される式で、添え字付きまたは添え字なしの、。ローカル変数の名前、プロセス・プライベート・グローバル、またはグローバル変数を表します。 |
intexpr | 返す名前を指定する整数コードです。変数名、添え字名またはネームスペース名のいずれかを返します。 |
説明
$QSUBSCRIPT は、intexpr の値に応じて、変数名、または namevalue の指定した添え字名を返します。namevalue がグローバル変数の場合、明示的に指定されていれば、ネームスーペース名を返すこともできます。$QSUBSCRIPTは、既定のネームスペース名を返しません。
引数
namevalue
引用符で囲まれた文字列または文字列に評価される式。ローカル参照またはグローバル参照です。Name(s1,s2,...,sn) という形式にできます。
文字列がグローバル参照のとき、ネームスペース参照を含むことができます。namevalue は引用符で囲まれた文字列であるため、リテラル引用符として正しく解析されるために、ネームスペース参照を囲む引用符を二重にする必要があります。
namevalue は、変数名をキャノニック形式 (完全な拡張参照) で参照する必要があります。ネイキッド・グローバル参照、または間接参照と共に $QSUBSCRIPT を使用するには、対応する完全な拡張参照を返すために $NAME 関数を使用できます。
intexpr
返す値を指定する整数式コードです。namevalue 引数が形式 NAME(s1,s2,...,sn) を持つと仮定します。ここで n は最終添え字の順序数です。intexpr 引数は、下の値のうちいずれでも持つことが可能です。
Code | 返り値 |
---|---|
< -1 | <FUNCTION> エラーを生成します。これらの数値は後の拡張子用に保存されます。 |
-1 | グローバル変数 namevalue がネームスペース名を含む場合に、ネームスペース名を返します。それ以外では、NULL ("") 文字列を返します。 |
0 | 変数名を返します。グローバル変数に対して ^NAME を返し、プロセス・プライベート・グローバル変数に対して ^||NAME を返します。ネームスペース名を返しません。 |
<=n | 整数 n によって指定される添え字のレベルに対する添え字名を返します。1 が最初の添え字レベルで、定義された添え字レベルのうち n が最高レベルとなります。 |
>n | 整数 >n は、NULL 文字列 ("") を返します。ここで、n は定義された添え字の最高レベルです。 |
例
以下の例は、namevalue が 1 つの添え字レベルを持つ添字付きグローバルであり、指定されたネームスペースの場合、$QSUBSCRIPT の値を返します。
SET global="^|""account""|%test(""customer"")"
WRITE !,$QSUBSCRIPT(global,-1) ; account
WRITE !,$QSUBSCRIPT(global,0) ; ^%test
WRITE !,$QSUBSCRIPT(global,1) ; customer
WRITE !,$QSUBSCRIPT(global,2) ; null string
以下の例は、namevalue が 2 つの添え字レベルを持つプロセス・プライベート・グローバルの場合、$QSUBSCRIPT の値を返します。$ZREFERENCE 特殊変数には、最近参照された変数が含まれています。
SET ^||myppg(1,3)="apples"
WRITE !,$QSUBSCRIPT($ZREFERENCE,-1) ; null string
WRITE !,$QSUBSCRIPT($ZREFERENCE,0) ; ^||myppg
WRITE !,$QSUBSCRIPT($ZREFERENCE,1) ; 1
WRITE !,$QSUBSCRIPT($ZREFERENCE,2) ; 3
以下の例は、ネイキッド・グローバル参照として指定されるグローバル変数に対する $QSUBSCRIPT 値を返します。$NAME 関数は、ネイキッド・グローバル参照をキャノニック形式に拡張するために使用されます。
SET ^grocerylist("food","fruit",1)="apples"
SET ^(2)="bananas"
WRITE !,$QSUBSCRIPT($NAME(^(2)),2) ; returns "fruit"
関連項目
-
$QUERY 関数
-
$QLENGTH 関数
-
$NAME 関数
-
$ZREFERENCE 特殊変数
-
"グローバルの使用法" の "グローバル構造"