Tcl中数组能够是下标不连续的:数组
set arr(1) 10 10 set arr(5) 50 50 set arr(10) 100 100 puts [array size arr] 3 puts [expr [array size arr]] 3
那么有一个问题:不连续的下标数组是如何索引呢?这须要用到”array name 数组变量名“命令:ide
puts [array name arr] 10 5 1
最终如何分别将每个元素索引出来呢?spa
首先要用array命令的子命令startsearch返回一个搜索标识符,再经过以下命令形式来循环遍历数组:code
array option 数组变量名 搜索标识符索引
代码以下:element
set id [array startsearch arr] s-1-arr array nextelement arr id illegal search identifier "id" array nextelement arr $id 10 array nextelement arr $id 5 array nextelement arr $id 1 array nextelement arr $id array anymore arr $id;#查看还有没有元素 0 array donesearch arr $id;#结束这个标识符的索引。结束以后再索引的话就会报错了。 array anymore arr $id couldn't find search "s-1-arr"
set id [array startsearch arr] s-1-arr puts $arr(1) 10 puts $arr([array nextelement arr $id]) 100 puts $arr([array nextelement arr $id]) 50 puts $arr([array nextelement arr $id]) 10 puts [array size arr] 3