Tcl/Tk 中 upvar 函數簡介


Upvar 函數類似於C中的傳參,形如

  • upvar level otherVar myVar    對於myVar的操作都相當於操作otherVar

作用1 調用someproc函數時,不能直接使用varname。

proc someproc varname {    upvar 1 $varname var        set var 5    }someproc a

作用2 聲明一個全局變量,全局變量命名空間的level是0

upvar #0 foo foo  ;# equivalent to: global foo

關於level,就是函數調用的層次

proc test_2 {b} {
puts [info level]
}

proc test_1 {a} {
puts [info level]
test_2 b
}

test_1 a

輸出1 和 2 , 分別對應test_1和test_2的層級

此時如果在test_2 中調用0級變量,應該使用upvar 2 $varname var? 關於level講解後續再做介紹

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章