variable - namespace変数を作成、初期化します。
variable ?name value...? name ?value?
本コマンドは通常namespaceの中のnamespace evalコマンドの間で1つ、又は複数の変数を定義するために使われます。各変数name
はvalueによって初期化され、最後の変数のvalueは省略可能です。
変数name が存在しない場合には新規作成されます。この場合valueの指定があればこのvalueを作成された変数に与えます。valueの指定がなければ変数は新しく定義されません。変数が既に存在する場合、valueの指定があれば変数はvalueにセットされます。valueの指定がなければ変数は変わりません。通
常name は無制限です (サブnamespaceに使われるname は除外です
) 。変数は現在のnamespaceにて作成されます。name はnamespace修飾子が着いている場合、変数は指定されたnamespaceにて作成され
、変数が宣言されたがまだ定義されていない場合、namespace whichコマンドで確認できますが、info existコマンドには反応しません。
variable コマンドが Tcl プロシージャの中で実行される場合、関連するnamespace変数とリンクされたローカル変数を作成します(従ってこれらの変数は
info locals.によってリストされます)
。この意味ではvariable コマンドは globalコマンドと似ています。異なるのはただglobalコマンドはグローバルなnamespaceにおける変数にしか連結しません。valueが与えられた場合、関連するnamespace変数の値としてセットされます。namespace変数が存在しなければ作成され、初期化(省略可能)されます。
name 引数は配列の要素をあらわすことができません。その為、name
は配列全体を参照しなければなりませんし、また、(配列の場合)初期化valueを指定することもできません。配列の要素は変数が宣言された後に普通
の setもしくは array コマンドでセットします。
global, namespace,
upvar
global, namespace,
procudure, variable
Copyright © 1993-1997 Bell Labs Innovations for Lucent Technologies
Copyright © 1997 Sun Microsystems, Inc.
Copyright © 1995-1997 Roger E. Critchlow Jr.
|