lua入门之二table

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

 

posted @ 2017-09-20 14:44  淡墨&青衫  阅读(198)  评论(0编辑  收藏  举报