私は TCL の初心者で、他の人が開発したコードの QA を提供しています (実際にはありません!)。この特定のプログラムには非常に多くのグローバル変数があり、upvar が使用されているのを時々見かけます。多くの場合、global と組み合わせて使用されます。upvar が参照渡しをエミュレートすることは理解していますが、次の 2 つのプロシージャの実際の違いは何でしょうか?
set myBigFatGloblVariable "hello"
proc myFirstProc { var1 var2 } {
upvar 1 $var1 local
set local [expr $var2 * 3]
}
proc mySecondProc { var2 } {
global myBigFatGlobalVariable
set $myBigFatGlobalVariable [expr $var2 * 3]
}
myFirstProc $myBigFatGlobalVariable 3
mySecondProc 3
myFirstProc はよりクリーンで . ここで何か不足していますか?