首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lua 4中的浅表复制

Lua 4中的浅表复制
EN

Stack Overflow用户
提问于 2017-08-23 04:51:53
回答 1查看 141关注 0票数 1

我正在为一个使用Lua4的旧视频游戏做一个mod,我需要一种方法来创建一个输入表的浅拷贝。我在网上找到了这个例程:

http://lua-users.org/wiki/CopyTable

代码语言:javascript
复制
function shallowcopy(orig)
    local orig_type = type(orig)
    local copy
    if orig_type == 'table' then
        copy = {}
        for orig_key, orig_value in pairs(orig) do
            copy[orig_key] = orig_value
        end
    else -- number, string, boolean, etc
        copy = orig
    end
    return copy
end

但是,该例程是为更高版本的Lua编写的。例如,在Lua4中不存在pairs函数,而且该函数不是递归的。我如何编写一个在Lua4中工作并且是递归的等效例程呢?谢谢!

编辑

更新帖子。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-23 05:59:31

Lua4有一个for表循环。

table for语句遍历给定表的所有对(索引、值)。它的语法如下:

代码语言:javascript
复制
   stat ::= for name `,' name in exp1 do block end

请参阅Lua 4参考手册第4.4.4节

https://www.lua.org/manual/4.0/manual.html#4.4

浅复制例程不需要是递归的。这只会影响通过引用复制的表值,因此它们的所有成员都在板上。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45826758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档