在Lua中用另一个2D数组填充2D数组

有没有一种方法用Lua填充一个2D数组到另一个2D数组?目前我正在使用的是:

local T4 = {
    {0, 0, 0, 0, 0},
    {0, 0, 1, 0, 0},
    {0, 1, 1, 1, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0}
};

function myFunc()
local Pieces = {}

        for x = 1, 5 do
        Pieces[x]={}
           for y = 1, 5 do
           Pieces[y][x] = T4[y][x]--可能是这里出错了
           end
        end
end

但是这不起作用,我有足够的理由这样做,因为这个过程反复进行,所以使用T4不是一个选择

而且我没有收到错误信息,程序就在那里停了,有什么办法可以解决吗?

原文链接 https://stackoverflow.com/questions/10437870

点赞
stackoverflow用户501459
stackoverflow用户501459

你的索引弄乱了:

function myFunc()
    local Pieces = {}
    for y = 1, 5 do
        Pieces[y]={}
        for x = 1, 5 do
            Pieces[y][x] = T4[y][x]
        end
    end
    return Pieces
end

你可以使用以下方式复制任何表格:

function copytable(t)
    local copy = {}
    for key,val in pairs(t) do
        if type(val) == 'table' then
            copy[key] = copytable(val)
        else
            copy[key] = val
        end
    end
    return copy
end

这是我靠想象做出的,所以要小心使用。它肯定无法处理循环引用(一个包含对相同表格的引用的表格)。

2012-05-03 20:02:38