填充 Lua table 未按预期进行

Filling Lua table not going as expected

我在 Lua 中编写了一些代码,但在我的代码中遇到了一个非常令人沮丧的 bug/mistake。

network = {}
network.neurons = {}

for i=1,4 do
    network.neurons[20000] = {}
    network.neurons[20000][i] = NewNeuron()
    print(network.neurons[20000][i])
end

NewNeuron() 函数创建了一个带有一些变量的新对象。此 for 循环中的 print() returns table 具有预期的正确变量。当我尝试在此循环中再次使用此打印时出现问题:

for i=1,4 do
    print(network.neurons[20000][i])
end

打印然后写入 4 条控制台行,如下所示:

(no return)
(no return)
(no return)
*neuron info that should be printed*

在我退出创建循环后,似乎只存在 4 个对象中的最后一个。为什么是这样?我做错了什么?

您在创建 NewNeuron 时在循环内分配了一个全新的 table。声明应该在外面:

network = {}
network.neurons = {}
network.neurons[20000] = {}

for i=1,4 do
    network.neurons[20000][i] = NewNeuron()
    print(network.neurons[20000][i])
end