Set

SETは、変数または変数の選択された部分に値を割り当てます。

SETコマンドのフォーマットは:

S[ET][:tvexpr] setleft=expr | (setleft[,...])=expr | *lvn=lname | aliascontainer[,...]

where

setleft == glvn | $EXTRACT(glvn,[,intexpr1[,intexpr2]]) | $PIECE(glvn,expr1[,intexpr1[,intexpr2]]) | isv

そして:

aliascontainer == lvn | exfunc | exvar

$PIECE() または $EXTRACT() のシンタックスについては、第7章: "関数" を参照してください。

SETの例

例:

GTM>Kill  Set a="x",(b,c)=1,@a="hello" ZWRite
a=x
b=1
c=1
x="hello"
GTM>

KILLコマンドは、以前に定義されたローカル変数を削除します。SETコマンドは、3つの引数があります。最初は単純な直接割り当てを示しています。2つ目は複数の変数に同じ値を代入するフォームを示しています。3つ目は、等号の左側にあるアトミックな間接指定を示しています。 ZWRITEコマンドは、割り当ての結果が表示されます。

例:

GTM>Set ^(3,4)=^X(1,2)

GT.MはSET引数内の左側の前に等号の右辺を評価するため、右側の式は、左辺を評価より優先して、ネイキッド・リファレンス・インディケータを決定します。したがって、この例では、^X(1,2)の値を^X(1,3,4) に割り当てます。

例:

GTM>Kill x Set $Piece(x,"^",2)="piece 3" ZWRite x
x="^^piece 3"
GTM>

このSETは、"セットピース: set piece"を示し、必要なときに、SETが欠落している区切り文字を生成する方法を示しています。$PIECE() の詳細については、 第7章: "関数" を参照してください。

例:

GTM>Set x="I love hotdogs"
                
GTM>Set x="I love hotdogs"
		
GTM>Set $Extract(x,3,6)="want"

GTM>Write x
I want hotdogs
GTM>Set $Extract(x,7)=" many "

GTM>Write x
I want many hotdogs
GTM>

SET $EXTRACTコマンドは、等号(=)の右側に式の値で指定された文字を置換して抽出します。$EXTRACT() の詳細については、 第7章: “関数を参照してください。

例:

GTM>kill A,B
        
GTM>set A=1,A(1)=1,A(2)=2
GTM>set *B=A ; A & B are aliases.
GTM>zwrite B
B=1 ;*
B(1)=1
B(2)=2
GTM>

このSET *コマンドは、AとBの間に関連付けられたエイリアスを作成します。A のノードのツリー全体をそのルートとすべての子孫をBに関連付けます。

例:

GTM>kill A,B,C
          
GTM>set A=1,*C(2)=A ; C(2) is a container
GTM>zwrite
A=1 ;*
*C(2)=A
GTM>set *B=C(2) ; B is now an alias
GTM>write B,":",$length(C(2)),":" ; An alias variable provides access but a container doesn't
1:0:
GTM>

この SET * コマンドは、エイリアス・コンテナを逆参照することによってエイリアスを作成します。

inserted by FC2 system