-
Notifications
You must be signed in to change notification settings - Fork 0
/
table.lua
75 lines (63 loc) · 1.51 KB
/
table.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
---
--- Generated by EmmyLua(https://github.com/EmmyLua)
--- Created by ashing.
--- DateTime: 2022/12/5 00:28
---
a = {}
k = "x"
a[k] = 10 -- key: x, value: 10
a[20] = "great" -- key: 20, value: "great"
a = {}
a["x"] = 10
b = a
b["name"] = "panda"
print(a["x"])
print(b["x"])
a = nil
--print(a["x"]) -- a is nil cause error
print(b["x"]) -- 同样还是有
t = {}
for i = 1, 1000 do
t[i] = i * 2
end
print(t[9])
-- a["name"] -> a.name
print(#t)
-- pairs and ipairs
t1 = { 1, p = nil, name = "panda", 3, 4, age = 18 }
-- 使用 ipairs 时,可以假定先去除 key=value 的元素
-- 例如 t1 剩下 { 1, 3, 4} 然后再做遍历
print("t1.pointer", t1)
print('t1 ipairs is')
for i, v in ipairs(t1) do
print(i, '=', v)
end
-- 注: 如果 p = nil, 修改为 nil,则剩下 { 1, nil, 3, 4} nil 会中断后续的遍历操作
-- 如果这个时候使用 t1[2] = xx // 修改为有效值 则能继续遍历
-- !!! do not use nil in table
t1 = { 1, nil, name = "panda", 3, 4, age = 18 }
print("t1.pointer", t1)
t1[2] = 22 -- 修改下标 2 (对应 nil)的值为 22
print('t1 ipairs is')
for i, v in ipairs(t1) do
print(i, '=', v)
end
print('t1 pairs is')
for i, v in pairs(t1) do
print(i, '=', v)
end
function table_len(t)
local len = 0
for k, v in pairs(t) do
len = len + 1
end
return len;
end
print("t1.len", table_len(t1)) --6
print(#t1, table.getn(t1))
myt = {"panda",name="xzx", " ", "ashing"}
print(table.concat(myt)) -- panda ashing
table.sort(myt)
for k,v in pairs(myt) do
print(k,v)
end