PowerFX V1.0 運用説明書 - Microsoft(R) Windows(R) -
目次 索引 前ページ次ページ

第3章 TCLplus> 3.4 TCLplusコマンド

3.4.41 upvar

機能:

局所変を大域変に関連付けることにより、プロシージャの内部からプロシージャの外部の変数を操作することができます。

形式:

upvarleveluppervar localvar

オプション:

なし

パラメーター:

level
関連付ける大域変数が存在する階層レベルを指定します。指定方法には以下の2通りの方法があります。

相対値で階層レベルを指定する
upvarコマンドを使用している階層を基準(0)にして、さかのぼる階層を"整数値"で指定します。「1」を指定した場合は、一つ上の階層における大域変数と関連付けます。
絶対値で階層レベルを指定する
トップレベルの階層を基準(0)にして、階層を指定するには"#整数値"の形式で指定します。「#0」を指定した場合は、トップレベルの階層における大域変数と関連付けます。

uppervar
大域変数名を指定します。

localvar
uppervarに指定した大域変数を操作するための局所変数名を指定します。

復帰値:

なし

注意事項:

levelで指定した階層がupvarコマンドと同じ階層である場合は、同じ階層の変数と関連付けられます。
levelで指定した階層が存在しない階層である場合、エラーになります。

使用例:

プロシージャの中から大域変数の値を変更する。

proc userproc {} {
   upvar 1 globalvar localvar
   puts ---------------------------------------
   puts "プロシージャの内部で大域変数を10に変更"
   puts ---------------------------------------
   set localvar 10
} 
set globalvar 5
puts "大域変数を $globalvar に設定"
userproc
puts "大域変数は $globalvar に変更された"

<実行結果>

大域変数を 5 に設定
---------------------------------------
プロシージャの内部で大域変数を10に変更
---------------------------------------
大域変数は 10 に変更された

目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005