生成具有唯一地址的表

问题描述 投票:0回答:1

我正在尝试插入一系列具有由函数生成的值的表。我注意到生成的表都具有相同的地址,因此在我的程序中仅识别最近生成的表。

下面代表主程序从中获取的文件中的代码。

a.lua

local a = {}
local b = {}

b.x = 0
b.y = 0
b.z = 'Static'

function a.new(x, y)
    b.x = x
    b.y = y
    return b
end

下面是上述代码的实现示例。

b.lua

a = require 'a'

d = {}

table.insert(d, a.new(1, 2))
table.insert(d, a.new(2, 3))

a.new 生成的表都具有相同的地址(即 0x0000001)。因此,最后一个 table.insert 会覆盖之前生成的表,并且“d”表中的各个条目都指向同一位置。

我怎样才能以这种方式生成具有唯一地址的表?

arrays list lua love2d generate
1个回答
0
投票

b需要这样还是可以简单地像这样修改a.lua?

local a = {}

function a.new(x, y)
    x = x or 0
    y = y or 0
    local b = {}
    b.x = x
    b.y = y
    b.z = 'Static'
    return b
end
© www.soinside.com 2019 - 2024. All rights reserved.