填充 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
我在 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