2016-08-20 8 views
2

私は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()関数は、いくつかの変数で新しいオブジェクトを作成します。このforループ内のprint()は、正しい変数を持つテーブルを期待どおりに返します。私はこのループで再びこの印刷を使用しようとすると問題が来る:

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つのオブジェクトの最後かのように見えます私は作成ループを終了した後に存在します。どうしてこれなの?私は間違って何をしていますか?

+1

ループ内の最初の行でテーブルをリセットしています。ループ外にこの行を移動します。 –

+1

おっと、見て... – ocuatrec

答えて

0

NewNeuronを作成するときに、ループ内にまったく新しいテーブルを割り当てます。宣言は外にある必要があります。

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

for i=1,4 do 
    network.neurons[20000][i] = NewNeuron() 
    print(network.neurons[20000][i]) 
end 
関連する問題