Tcl 数组
数组是使用索引对一组元素进行系统排列的一种数据结构。常规数组的语法如下所示。
set ArrayName(Index) value
以下是创建简单数组的示例。
#!/usr/bin/tclsh
set languages(0) Tcl
set languages(1) "C Language"
puts languages(0)
putslanguages(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)
putspersonA(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