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