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