下面是Tcl 数组(array)的应用技巧。
(1)数组与列表的转换
(2)在函数中不能返回整个数组
proc func{} \
{
set a(1) 10
set a(2) 20
return $a
}
set temp [func]
上面的代码报错如下:
(3)可以在函数中将数组转换为列表,返回该列表;在调用函数的地方将列表转换为数组:
proc func{} \
{
set a(1) 10
set a(2) 20
lappend a(1) 11
return [array get a]
}
setlist_a [func]
array setb $list_a
set names[array names b]
foreachvar $names {
tk_messageBox -message "index:$varvalue:$b($var)\n"
}
上面的代码结果:
(4)给数组重复调用array set会修改数组元素的值(添加或覆盖):
命名空间变量也是如此。
(5)定义一个空数组
array set arr {}
(6)删除数组的某个元素