查看: 4|回复: 0

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

[复制链接]

28

主题

68

回帖

1441

积分

金牌会员

积分
1441
QQ
发表于 昨天 15:14 | 显示全部楼层 |阅读模式
数组 + 哈希混合
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

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表