填充 Lua 表格遇到了意料之外的问题

我正在编写一个 Lua 小程序,但是在我的代码中遇到了一个非常令人沮丧的错误/错误。

network = {}
network.neurons = {}

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

NewNeuron() 函数创建一个带有一些变量的新对象。这个循环内的 print() 返回具有正确变量的表,正如预期的那样。问题在于,当我再次在此循环中使用此 print() 时:

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

这个 print() 然后写下 4 行控制台内容,如下所示:

(no return)
(no return)
(no return)
*应打印的神经元信息*

看起来好像只有在我退出创建循环后的最后一个 4 个对象存在。为什么?我做错了什么?

点赞
用户1190388
用户1190388

在创建 NewNeuron 时,您正在循环内部分配一个全新的表。声明应该在循环外:

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

for i=1,4 do
    network.neurons[20000][i] = NewNeuron()
    print(network.neurons[20000][i])
end
2016-08-20 20:06:41