Tcl命令操做实验-----(10)---数组

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"

注意:以上命令中全部的arr都没有使用$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
相关文章
相关标签/搜索