一天三盒半 发表于 昨天 15:14

LUA进阶教程——Table 深度进阶(Lua 灵魂)

数组 + 哈希混合

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=v end
    return res
end

-- 深拷贝(含 table 递归)
local function deepCopy(t)
    local res = {}
    for k,v in pairs(t) do
      res = type(v)=="table" and deepCopy(v) or v
    end
    return res
end

页: [1]
查看完整版本: LUA进阶教程——Table 深度进阶(Lua 灵魂)