數(shù)組是一組使用索引對應(yīng)元素的排列方式。常規(guī)數(shù)組的語法如下所示。
set ArrayName(Index) value
用于創(chuàng)建簡單數(shù)組的例子,如下所示。
#!/usr/bin/tclsh set languages(0) Tcl set languages(1) "C Language" puts $languages(0) puts $languages(1)
當(dāng)上述代碼被執(zhí)行時(shí),它會(huì)產(chǎn)生以下結(jié)果。
Tcl C Language
用于計(jì)算數(shù)組大小的語法,如下所示。
[array size variablename]
用于打印數(shù)組的大小的示例如下所示。
#!/usr/bin/tclsh set languages(0) Tcl set languages(1) "C Language" puts [array size languages]
當(dāng)上述代碼被執(zhí)行時(shí),它會(huì)產(chǎn)生以下結(jié)果。
2
雖然數(shù)組索引可以是非連續(xù)的,像索引1,然后索引10等指定的值。但是如果它們是連續(xù)的,我們可以用數(shù)組迭代訪問數(shù)組的元素。一個(gè)簡單的數(shù)組迭代的打印元素,如下所示。
#!/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)" }
當(dāng)上述代碼被執(zhí)行時(shí),它會(huì)產(chǎn)生以下結(jié)果。
languages(0) : Tcl languages(1) : C Language
在TCL,所有數(shù)組本質(zhì)是相關(guān)聯(lián)的。數(shù)組存儲并沒有任何具體的順序進(jìn)行檢索。關(guān)聯(lián)數(shù)組使用索引但不一定都是數(shù)字。一個(gè)簡單的例子,關(guān)聯(lián)數(shù)組與非數(shù)字索引如下所示。
#!/usr/bin/tclsh set personA(Name) "Dave" set personA(Age) 14 puts $personA(Name) puts $personA(Age)
當(dāng)上述代碼被執(zhí)行時(shí),它會(huì)產(chǎn)生以下結(jié)果。
Dave 14
用于檢索數(shù)組索引的語法如下所示。
[array names variablename]
用于打印數(shù)組的大小的示例如下所示。
#!/usr/bin/tclsh set personA(Name) "Dave" set personA(Age) 14 puts [array names personA]
當(dāng)上述代碼被執(zhí)行時(shí),它會(huì)產(chǎn)生以下結(jié)果。
Age Name
可以使用數(shù)組的索引來遍歷數(shù)組。如下例子所示。
#!/usr/bin/tclsh set personA(Name) "Dave" set personA(Age) 14 foreach index [array names personA] { puts "personA($index): $personA($index)" }
當(dāng)上述代碼被執(zhí)行時(shí),它會(huì)產(chǎn)生以下結(jié)果。
personA(Age): 14 personA(Name): Dave