關於 lua table表


--table 是lua的一種數據結構用來幫助我們創建不同的數據類型。如:數組和字典
--lua table 使用關聯型數組,你可以用任意類型的值來做數組的索引,但這個值不能是nil
--lua table 是不固定大小的,你可以根據自己需要進行擴容

 

一、lua 的table 表存的數據類型

  這個 table 表 強大,可以存放好多種數據類型

 
        
tab1 = {1, 2 ,3} -- 類似數組
tab2 = {"a", "b", "c"}  -- 類似數組
tab3 =  {["a"]="aa", ["b"]="bb"}   -- 鍵值對
1. 存函數 tb = {} tb.func = function () print("hanshu") end print(tb.func()) 2. 判斷一個table的元素是否是另一個table的元素(關於函數) tab={}
tab.a
=function () print(1) return 1 end
tab.b=function () print(2) return 1 end
tab.c=function () print(3) return 1 end local zhi={"a","c"} for key,value in pairs(zhi) do print(key,value) for key ,func in pairs(tab) do if value == func then func() print("ok") end end end
輸出結果:
1
a 2 c


3. 判斷有沒有函數 tab={}
function a() print(1) return 1 end
function b() print(2) return 1 end
function c() print(3) return 1 end local tab={["a"]=a, ["b"]=b, ["c"]=c} local zhi={"a","c"} for key,value in pairs(zhi) do print(key,value) if tab[value]() then print("ok") end end
輸出結果:
1
a 1 ok 2 c 3 ok

 

2、lua 的table的 遍歷

  pairs遍歷表中全部key,value.
  ipairs從下標為1開始遍歷,然后下標累加1,如果某個下標元素不存在就終止遍歷。這就導致如果下標不連續或者不是從1開始的表就會中斷或者遍歷不到元素。

local tt ={[1] = "test3",[4] = "test4",[5] = "test5"}

for i,v in pairs(tt) do        -- 輸出 "test4" "test3" "test5"
    print( tt[i] )
end

for i,v in ipairs(tt) do    -- 輸出 "test3" k=2時斷開
    print( tt[i] )
end

----------------------------------------------------
tbl = {"alpha", "beta", [3] = "uno", ["two"] = "dos"}

for i,v in ipairs(tbl) do    --輸出前三個
    print( tbl[i] )
end

for i,v in pairs(tbl) do    --全部輸出
    print( tbl[i] )
end

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM