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))