数组是使用索引的一组元素的系统排列.传统数组的语法如下所示.
set ArrayName(Index)value
创建简单数组的示例如下所示.
#!/usr/bin/tclsh set languages(0) Tcl set languages(1) "C Language" puts $languages(0) puts $languages(1)
执行上述代码时,它会产生以下结果 :
Tcl C Language
计算大小数组的语法如下所示.
[array size variablename]
示例打印尺寸如下所示.
#!/usr/bin/tclsh set languages(0) Tcl set languages(1) "C Language" puts [array size languages]
执行上述代码时,会产生以下结果 :
2
但是,数组索引可以是非连续的,就像为索引1指定的值一样索引10等等.但是,如果它们是连续的,我们可以使用数组迭代来访问数组的元素.用于打印数组元素的简单数组迭代如下所示.
#!/usr/bin/tclsh set languages(0) Tcl set languages(1) "C Language" for { set index 0 } { $index < [array size languages] } { incr index } { puts "languages($index) : $languages($index)" }
当执行上面的代码时,它产生以下结果 :
languages(0) : Tcl languages(1) : C Language
在Tcl中,所有数组本质上都是关联的.无需任何特定顺序即可存储和检索数组.关联数组的索引不一定是数字,并且可以稀疏填充.下面显示了具有非数字索引的关联数组的简单示例.
#!/usr/bin/tclsh set personA(Name) "Dave" set personA(Age) 14 puts $personA(Name) puts $personA(Age)
执行上述代码时,它会产生以下结果 :
Dave 14
检索数组索引的语法是如下所示.
[array names variablename]
示例打印尺寸如下所示.
#!/usr/bin/tclsh set personA(Name) "Dave" set personA(Age) 14 puts [array names personA]
执行上述代码时,会产生以下结果 :
Age Name
您可以使用数组的索引来遍历关联数组.示例如下所示.
#!/usr/bin/tclsh set personA(Name) "Dave" set personA(Age) 14 foreach index [array names personA] { puts "personA($index): $personA($index)" }
执行上述代码时,会产生以下结果 :
personA(Age): 14 personA(Name): Dave