TCL數組
數組是一組使用索引對應元素的排列方式。常規數組的語法如下所示。
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