Tcl数据结构之数组

数组是Tcl数据结构之一,Tcl数组的索引可以是任意字符串,数组不支持嵌套。数组的索引对空格敏感,使用时需要注意。

创建

set arrayName(index) value
array set arrayName {?index1 value1 index2 value2 ... indexN valueN?}

第一种方式是set命令,直接向想要创建的数组赋值。index如果包含空格,只是将其用双引号包围是不行的,需要对空格进行反斜杠转义。由于数组支持变量替换,所以还可以通过变量来将带空格的字符串作为索引。

第二种方式是array set命令,与第一种不同的是,可以通过接受一个列表来同时传入多个元素对。

set idx "a b"
set arr($idx) 1
set arr(0) 2
set arr(c\ d) 3

输出

通过parray命令可以输出数据元素。

parray arr

多维数组

Tcl本身是不支持多维数组的,但是可以利用Tcl数组索引可以是多值的特性来达到相同的效果。

set arr(0,1) a
set arr(0,2) b
set arr(1,3) c
puts arr(0,1)

arr实际上仍是一维数组,只是通过逗号分隔的多值索引来达到逻辑上的多维数组的效果。


版权声明:本文为asty9000原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。