有没有办法在Lua中用另一个2dArray填充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]--the error is probably here
end
end
end
但这不起作用,我有充分的理由这样做,因为这个过程会重复很多次,所以使用T4不是一个选项
我也没有收到错误,程序就停在那里,所以不知道怎么做?
答案 0 :(得分:4)
你的索引搞砸了:
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
这是我的头脑,所以使用阳离子。它肯定不处理循环引用(包含对同一个表的引用的表)。