Table 库
下标从 1 开始
local color={first="red", "blue", third="green", "yellow"}
print(color["first"]) --> output: red
print(color[1]) --> output: blue
print(color["third"]) --> output: green
print(color[2]) --> output: yellow
print(color[3]) --> output: nil-- 情况 1: 使用 `#str+1`, 要添加的值为“真值”或 false str = {'a', 'b', 'c'} str[#str+1] = 'd' print('str_len:' .. #str) -- 打印出 str 的元素个数 for i,v in ipairs(str) do print(i,v) -- 打印 str 的元素 end -- output: (正确的结果) str_len:4 1 a 2 b 3 c 4 d -- 注:false 也是可以正常添加的。 -- 情况 2: 使用 `#str+1`, 要添加的值为 nil str = {'a', 'b', 'c'} str[#str+1] = nil print('str_len:' .. #str) -- 打印出 str 的元素个数 for i,v in ipairs(str) do print(i,v) -- 打印 str 的元素 end -- output: (正确的结果) str_len:3 1 a 2 b 3 c -- str 的元素个数没有变化 -- 情况 3: 使用 `#str`, 要添加的值为“真值”或 false str = {'a', 'b', 'c'} str[#str] = 'd' print('str_len:' .. #str) -- 打印出 str 的元素个数 for i,v in ipairs(str) do print(i,v) -- 打印 str 的元素 end -- output: (不期望的结果) str_len:3 1 a 2 b 3 d -- str 的元素个数没有变化,但是最后一个元素被覆盖了,并不是期望的添加一个新元素 -- 情况 4: 使用 `#str`, 要添加的值为 nil str = {'a', 'b', 'c'} str[#str] = nil print('str_len:' .. #str) -- 打印出 str 的元素个数 for i,v in ipairs(str) do print(i,v) -- 打印 str 的元素 end -- output: (不期望的结果) str_len:2 1 a 2 b -- str 的元素少了一个,不光没有添加反而删除了一个s = { 1, 2, 3, 4, 5, 6 } s[4] = nil print('s_len:' .. #s) -- 打印出 s 的元素个数 for i,v in ipairs(s) do print(i,v) -- 打印 s 的元素 end -- output: s_len:3 1 1 2 2 3 3
table.getn 获取长度
table.concat (table [, sep [, i [, j ] ] ])
table.insert (table, [pos ,] value)
table.maxn (table)
table.remove (table [, pos])
table.sort (table [, comp])
table 其他非常有用的函数
Last updated