Lua的表
表
Code示例
--定义一个空表 tabMyArray = {} print(tabMyArray) --表赋值 tabMyArray = {11,22,33} for k, v in pairs(tabMyArray) do print(v) end --定义一个"键值对"类型的表 tabMyArray2={str1="电梯战神",str2="钓鱼带头盔",str3="我是警察"} --输出方式2种 print(tabMyArray2.str1) print(tabMyArray2["str2"]) print(tabMyArray2["str3"]) for k, v in pairs(tabMyArray2) do print(tabMyArray2[k]) end
表的构造与基本访问
--键值对类型表的迭代输出 tabMyArray5={str1="电梯战神",str2="钓鱼带头盔",str3="我是警察"} --定义表,直接赋值 tabMyArray5.str4="老公你说句话啊" tabMyArray5["str5"] = "真不要脸" --输出 for i = 1, 5 do --使用#迭代输出键值对表是不行的 print(tabMyArray5["str"..i]) end for k, v in pairs(tabMyArray5) do print(tabMyArray5[k]) end
表函数
--表函数 --得到表的长度, 5.3 table.getn() 没有这个函数 tab1 = {"你好","再见","早上好"} print(#tab1) --3 --注意: 对于键值对的表, 不能用 # 获得长度 tab2 = {name1="话事人",name2="冠希哥",name3="YJJ"} print(#tab2) --0 --表连接 print(table.concat(tab1)) --你好再见早上好 print(table.concat(tab1,"|")) --你好|再见|早上好 print(table.concat(tab1,"|",2,3)) --再见|早上好 --表的移除 不指定则移除最后一个 tab4 = {"hello","jojo","ok"} table.remove(tab4) print(table.concat(tab4," | ")) --hello | jojo table.remove(tab4,2) print(table.concat(tab4," | ")) --hello | ok --表的排序 table.sort()函数 tab5 = {60,8,9,40,35} --数值 table.sort(tab5) print(table.concat(tab5," | ")) --8 | 9 | 35 | 40 | 60 tab6={"river","zone","break","Room","您好"} table.sort(tab6) print(table.concat(tab6," | ")) --Room | break | river | zone | 您好 --表的最大值 table.maxn()函数,这个函数有问题 --Lua 5.3已经弃用这个函数 tab7 = {1,3,10,5,6,7,8,9} res1 = table.maxn(tab7) print(res1) --输出的却是表的长度 --自定义求最大值函数 function GeTabMaxNumber(table) maxNum = 0; for k, v in pairs(table) do if (maxNum < table[k]) then maxNum = table[k] end end return maxNum; end maxNum = GeTabMaxNumber(tab7) print(maxNum)