位置:首頁 > 腳本語言 > Tcl教學 > TCL數組

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