(1) 传递数组可以改变数组的值
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