📅  最后修改于: 2020-10-16 06:26:53             🧑  作者: Mango
数组是使用索引的一组元素的系统排列。常规数组的语法如下所示。
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