$Get()

もし変数が値を持っていれば、ローカルまたはグローバル変数の値を返します。もし変数に値がない場合、この関数は、オプションの第2引数で指定された値を返し、そうでなければ空の文字列を返します。

$GET関数のフォーマット:

$G[ET](glvn[,expr])

Mは$GET(x,y)と同等のものとして以下を定義します:

$Select($Data(x)[0:y,1:x)

そして$GET(x)と同等のものとして:

$GET(x,"")

$GET() は、変数の分かれての初期化を排除するツールを提供しています。非存在オプション情報を他の状態で保持するノードを排除することによって、散在グローバル配列の密度を高めるために使用される時に、このテクニックは、パフォーマンス上の利点を提供できます。一方、一つの$GET()の引数のいくつかの用途は、ロジック上の問題を隠すことができます。

GT.Mは、一つの$GET()の引数を引数であるかのように、すべての変数参照を扱う操作である "NOUNDEF" モードを持ちます。VIEWコマンドは、"NOUNDEF" モードを制御します。

$GET()の例

例:

setstatus;
         if '$data(^PNT(NAME,TSTR)) set STATUS="NEW TEST"
         else  if ^PNT(NAME,TSTR)="" set STATUS="WAITING FOR RESULT"
         else  set STATUS=^PNT(NAME,TSTR)

この例は、次の例に示すように、$GET()を使用して、コードの2行に減らすことができます。しかし、$GETを使用することによって、その1つの引数の形で、未定義変数とnull値を持つ1つとの区別が失われます。

set STATUS=$get(^PNT(NAME,TSTR))
if STATUS="" set STATUS="WAITING FOR RESULT"

これは、$GET() の2つの引数の形式を使用することによって解決されます。

set STATUS=$get(^PNT(NAME,TSTR),"NEW TEST")
if STATUS="" set STATUS="WAITING FOR RESULT"
inserted by FC2 system