一. table
table是lua唯一的數據結構。table 是 lua 中最重要的數據類型。 table 類似于 python 中的字典。table 只能通過構造式來創建。其他語言提供的其他數據結構如array、list等等,lua都是通過table來實現的。table非常實用,可以用在不同的情景下。最常用的方式就是把table當成其他語言的數組。
實例1:
說明:
1). 數組不必事先定義大小,可動態增長。
2). 創建包含100個元素的table,每個元素隨機賦1-1000之間的值。
3). 可以通過mytable[x]訪問任意元素,x表示索引。
4). 索引從1開始。
實例2:
說明:
1). table 中的每項要求是 key = value 的形式。
2). key 只能是字符串, 這里的 a, b, c, d 都是字符串,但是不能加上引號。
3). 通過 key 來訪問 table 的值,這時候, a 必須加上引號。
實例3:
說明:
1). 數標從1開始。
2). 省略key,會自動以1開始編號,并跳過設置過的key。
二. table函數
lua提供了許多實用的內建函數來操作table。
2.1 table.getn(table)
返回table中的元素個數。
2.2 table.insert(table,position,value)
在table中插入一個新的值,位置參數可選的,如果沒有指定,會添加table的末尾,否則插入到指定的位置。
table.insert(tab, 2, “hello vevb.com”)
插入”hello vevb.com”到table的第2個元素的位置,并重新索引。
2.3 table.remove(table,position)
從指定table中刪除并返回一個元素,如果沒有指定position值,則默認刪除最后一個元素。
三. table引用
table不僅可以使用數字索引,也可以用其他值作為索引值。
四. 多維table
在lua中創建多維table非常容易的。可以把多維table看做是table的table。可以通過多個關鍵字來訪問。
五. 遍歷table
pairs()函數可以遍歷table中的每個元素。
輸出:
pairs()函數遍歷整個table,即使不知道table長度,并返回索引值和相對應的元素值。
|
新聞熱點
疑難解答