upvar 0
とTCLの違いupvar 1
、リアルタイムでの使用方法を教えてください。親切に、誰かが例を挙げて説明すると、より明確になります。
1567 次
3 に答える
1
分かりました例は違いを非常に明確にするでしょう:
関数 test_upvar1 があるとしましょう:
proc test_upvar1 {} {
upvar 1 a b
incr b
}
関数 test_upvar0:
proc test_upvar0 {} {
upvar 0 a b
incr b
}
次に、変数 a を設定し、両方の関数を呼び出して何が起こるかを確認します。
set a 5
test_upvar1
これは6を返します
set a 5
test_upvar0
1を返します
これは、同じ実行フレーム 1 の実行フレーム 0 リンクをゼロと 1 フレームで選択するために発生します。
http://wiki.tcl.tk/1508を参照してください。
于 2015-05-12T11:59:15.643 に答える