数组 + 哈希混合
local t = {
10, 20, 30, -- 数组部分(key 1,2,3)
name = "zhangsan",-- hash 部分
age = 18
}
遍历:ipairs vs pairs
ipairs:只遍历连续数字 key(1,2,3…),跳过 nilpairs:遍历所有 key(数字、字符串、nil 不遍历)local t = {10, nil, 30, name="a"}
-- ipairs:1→10,3→30
for i,v in ipairs(t) do print(i,v) end
-- pairs:1→10,3→30,name→a
for k,v in pairs(t) do print(k,v) end
浅拷贝 / 深拷贝-- 浅拷贝
local function shallowCopy(t)
local res = {}
for k,v in pairs(t) do res[k]=v end
return res
end
-- 深拷贝(含 table 递归)
local function deepCopy(t)
local res = {}
for k,v in pairs(t) do
res[k] = type(v)=="table" and deepCopy(v) or v
end
return res
end
|