namespace eval sp {
proc func {arr} \
{
upvar $arr name
foreach var [array names name] {
set name($var) [expr $name($var) + 2]
}
}
proc main {} \
{
array set arr [list 1 10 2 20]
func arr
set str ""
foreach var [array names arr] {
append str "index:$var value:$arr($var)\n"
}
tk_messageBox -message $str
}
}
sp::main
執行結果:
(2)傳遞變量可以改變變量的值
set a 1
proc test{b} {
upvar $b mya
set mya 10
}
test a
tk_messageBox -message $a; #輸出10