1 --table 2 3 mytable={} 4 5 mytable[1]="lua" 6 7 --打印table名称即是地址,和数组一样 8 print(mytable) 9 10 --打印数组名称即是地址 11 myarray={"xx","oo"} 12 print(myarray) 13 14 ---比较:数组就是下标为数字的,table下标可为数字,可为其他类型 15 16 17 --移除引用,-- lua 垃圾回收会释放内存 18 --mytable=nil 19 --print(mytable) 20 21 mytable2={"wewe","wewertgd"} 22 print("mytable2的类型是:",type(mytable2)) 23 24 --alertmytable2和mytable2指向同一个table 25 alertmytable2=mytable2 26 print("[1]",alertmytable2[1]) 27 print("[2]",alertmytable2[2]) 28 29 --释放 30 alertmytable2=nil 31 print("alertmytable2",alertmytable2) 32 print("mytable2",mytable2) 33 34 35 print("---------------------table操作-拼接--------------------") 36 37 fruits = {"banana","orange","apple"} 38 -- 返回 table 连接后的字符串 39 -- 把table内容拼接 40 print("连接后的字符串 ",table.concat(fruits,"*")) 41 -- 第二、三个元素拼接 42 print("连接后的字符串 ",table.concat(fruits,"*",2,3)) 43 44 fruits1 = { 45 ["banana"]="banana1", 46 ["orange"]="orange1", 47 ["apple"]="apple1", 48 } 49 --这种拼接无效 50 print("连接后的字符串 ",table.concat(fruits1,",")) 51 52 print("---------------------table操作-插入--------------------") 53 54 fruits2 = {"banana","orange","apple"} 55 --末尾插入 56 table.insert(fruits2,"xxpp") 57 --print(fruits2[4]) 58 59 --在索引为2的地方插入 60 table.insert(fruits2,2,"oo") 61 --print(fruits2[2]) 62 for k,v in pairs(fruits2) do 63 print(k,v) 64 end 65 66 print("---------------------table操作移除--------------------") 67 68 --移除最后一个元素 69 table.remove(fruits2) 70 for k,v in pairs(fruits2) do 71 print(k,v) 72 end 73 74 --总结 insert remove 不指定位置的话,都是从尾部操作 75 76 77 print("---------------------table操作排序--------------------") 78 79 fruits3= {"banana","orange","apple","grapes"} 80 print("排序前") 81 for i,v in ipairs(fruits3) do 82 print(i,v) 83 end 84 85 ---默认排序是按首字母ASCII排序 86 table.sort(fruits3) 87 print("排序后") 88 for i,v in ipairs(fruits3) do 89 print(i,v) 90 end 91 92 print("--------table.maxn最大值(最大下标--------------") 93 -- -table.maxn在 Lua5.2 之后该方法已经不存在了 94 tbl = {[1] = "a", [2] = "b", [3] = "c", [26] = "z"} 95 print("tbl长度",#tbl) 96 print("tbl下标最大值",table.maxn(tbl))