lua基本語法之常用資料結構
阿新 • • 發佈:2021-06-26
一)table (表)
Table 型別實現了一種抽象的“關聯陣列”。即可用作陣列,也可以用作map。
lua中沒有陣列和map,都是用table這個型別
--陣列
java int[] intArr = new int[]{1,2,3,4,5,6};
intArr[0]
intArr[1]
--map----> key value
HashMap map
map.add(key,value)
-- 初始化表 mytable = {} -- 指定值 mytable[1]= "Lua" mytable[2]= "Lua2" mytalbe["k1"] = v1; -- 移除引用 mytable = nil -- lua 垃圾回收會釋放記憶體 lua類似陣列的table ,索引值從1開始,,而不是0 mytable={1,2,3,4,5} mytalbe[1] mytable={"a","b","hello","world"} mytable1 = {key1 = "v1",k2="v2",k3="v3"} mytable2 = {"a",key1 = "v1","b",k2="v2",k3="v3","hello","world"} print(mytable[1],mytable[2],mytable[3],mytable[4]); print("------------------") print(mytable1["key1"],mytable1["k2"],mytable1["k3"]); print("------------------") print(mytable2[1],mytable2["key1"],mytable2[2],mytable2["k2"],mytable2[3],mytable2[4]); talbe key可以為 number 或字串,,也可以是其他型別 table 是記憶體地址 賦值給變數
二)table進行賦值給變數,其實是把記憶體地址給了變數,變數只是引用了記憶體地址
local mytable1 = {"a",key1 = "v1","b",k2="v2",k3="v3","hello","world"}
local mytable2 = mytable1
mytable2[1] = "aa"
print(mytable2[1])
print(mytable1[1])
mytable2 = nil --移除的是引用
print("-------------")
print(mytable1[1])
記憶體指標--》C++