table的創建與使用——LUA(1)


一、創建
local a = {}
哈哈,屌炸天了!

二、初始化
1、相信你一看就能明白:
local a = {["x"] = 12, ["mutou"] = 99, [3] = "hello"}
print(a["x"]);
對於字符串下標,我們可以省略方框和雙引號,但是數字下標不可以,千萬不要搞混了。例如:
local a = {x = 12, mutou = 99, [3] = "hello"}
print(a["x"]);

a["x"]這種調用方式也可以簡化,例如:

local a = {x = 12, mutou = 99, [3] = "hello"}
print(a.x);

2、默認數字索引,完整代碼:
local a = {[1] = 12, [2] = 43, [3] = 45, [4] = 90}
簡化寫法:local a = {12, 43, 45, 90}
print(a[1]);

3、table裏面可以放table也可以放函數

含table:

local a = {
 {x = 1, y = 2},
 {x = 3, y = 10}
}
含函數:
function test()
 print("Hello Table");
end
local a = {[test] = 1}
print(a[test]);

三、使用與注意
1、table永遠是匿名的,一個持有table的變量與table自身之間沒有固定的關聯性。

2、用a = nil的方法刪除,當程序再也沒有對一個table的引用時,lua垃圾回收器最終會刪除table,並複用它的內存

3、a.x與a[x],前者表示a["x"],表示以字符串"x"來索引table。而後者是以變量x的值來索引table。
a = {}
x = "y"
a[x] = 10  --將10放入字段"y"
print(a[x])  --字段“y"的值
print(a.x)  --字段"x"(未定義的)的值
print(a.y)  --字段"y"的值


4、數組通常以1作爲索引的起始值,並且不少機制依賴於這個慣例。在Lua5.1中,長度操作符"#"用於返回一個數組或線性表的最後一個索引值(或爲其大小)。
print(a[#a])  --打印類表a的最後一個值
a[#a] = nil  --刪除最後一個值
a[#a+1] = v  --將v添加到列表末尾

5、nil作爲界定數組結尾的標誌,對於處理含有“空隙”的數組,可以使用函數table.maxn,他將返回一個table的最大正索引數:
a = {}
a[10000]  = 1
print(table.maxn(a))  -->10000
發佈了23 篇原創文章 · 獲贊 5 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章