Tcl陣列命令之array

2021-09-22 10:22:16 字數 2578 閱讀 7181

array option arrayname ?arg1 arg2 ... argn?
操作名為arrayname的陣列,option選項決定了執行什麼操作。option支援以下選項:

array set arrayname list
向陣列中新增乙個或多個元素,list由偶數個元素組成。奇數個元素被視為陣列的索引,其後跟著的元素為索引對應的值。如果arrayname不存在且list為空,則使用空陣列值建立陣列arrayname。

array unset arrayname ?pattern?
刪除所有與pattern匹配的元素,匹配規則與string match一致。 如果arrayname不是陣列變數的名稱,或者陣列中沒有匹配的元素,不會引發錯誤。如果沒有指定pattern,則會刪除陣列中的所有元素。該命令總是返回乙個空字串。

array get arrayname ?pattern?
返回索引與pattern匹配的元素對的列表。列表中奇數個元素是匹配的索引,其後的元素是索引對應的值。如果沒有指定pattern,則返回所有元素。匹配規則與string match一致。如果arrayname不是陣列變數的名稱,或者沒有匹配的索引,則返回空列表。

array size arrayname
返回陣列中元素數量,如果arrayname不是陣列的名稱,則返回0。

array statistics arrayname
返回表示陣列的雜湊表中資料分布的統計資訊。資訊包括表中的條目數、桶的數量和桶的使用情況。

array exists arrayname
如果arrayname是陣列變數則返回1,如果arrayname不存在或者不是陣列變數則返回0。

array names arrayname ?mode? ?pattern?
返回乙個包含mode模式下與pattern匹配的陣列索引的列表。mode可以是-exact、-glob或-regexp,預設為-glob與lsearch中的匹配模式含義相同。如果未指定mode與pattern則返回所有索引。如果沒有匹配的索引或者arrayname不是陣列變數的名稱,則返回空字串。

array startsearch arrayname
通過arrayname指定的陣列初始化乙個逐個元素的搜尋,這樣呼叫array nexelement命令將返回單個陣列元素的索引。當搜尋完成後,需要呼叫array donesearch命令。返回值是乙個用於array nextelement和array donesearch命令的識別符號,允許對同一陣列同時進行多個搜尋。目前遍歷非常大的陣列時,使用foreach命令與array get或array names命令一起使用更高效、簡潔。

array nextelement arrayname searchid
返回arrayname中下乙個元素的索引,如果arrarname中所有元素的索引都已經返回了,則返回空字串。searchid是由array search命令的返回值。如果陣列新增或刪除了元素,那麼所有的搜尋都會自動終止,就像呼叫了array donesearch命令一樣,會導致這些搜尋的array nextelement命令操作失敗。

array anymore arrayname searchid
如果陣列搜尋中還有要處理的元素,則返回1,如果所有元素都已經返回,則返回0。searchid表示要檢查arrayname上的那個搜尋,searchid是在此之前呼叫的array search命令的返回值。此命令對於陣列中元素的索引有空值時非常有用,因為array nextelement命令的返回值不能確認搜尋是否已經完成。

array donesearch arrayname searchid
此命令終止陣列搜尋並銷毀與該搜尋關聯的所有狀態。searchid表示要銷毀arrayname上的哪個搜尋,searchid是在此之前呼叫的array search命令的返回值。此命令返回值為空字串。

array set arr {}

array size arr

array set arr

array size arr

array get arr a*

array names arr a*

array names arr -exact a

array names arr

array statistics arr

set searchid [array startsearch arr]

while

array donesearch arr $searchid

array unset arr a*

array size arr

array exists arr

array unset arr

array size arr

array exists arr

array exists arr1

Tcl正則命令之regexp

regexp switches?exp str matchvar?submatchvar submatchvar 判斷正規表示式exp是否匹配部分或全部字串str,如果匹配返回1,否則返回0。如果在str後面指定了其他引數,則視為變數的名稱,其中儲存的是str中匹配exp的部分。matchvar儲存...

java之陣列Array使用

1.基本用法總結如下 public class array int arr3 new int string arr4 new string 或者 int arr5 string arr6 string str a,b,c,d,e,f string arr7 str.split arr7等價於arr6...

Tcl列表排序命令之lsort

lsort options?list對列表中的元素進行排序,返回排序後的新列表。預設情況下以ascii的順序遞增排序。options支援以下選項 選項說明 ascii 字串比較。dictionary 字典比較。與 asii相同,除了兩點 1.除非字母為排序的關鍵點,否則忽略大小寫。如abc會排在ab...