2014-05-03 61 views
1

我有這樣的代碼寫在Lua中,它只是一個示例代碼,因爲我使用的實際代碼比這個大,但這是我遇到問題的部分。Lua上的表打印零號

有沒有人知道爲什麼當我嘗試打印表格t時,我得到nil

t = { 
{name="John",sex="M",age=19}, 
{name="Susan",sex="F",age=20} 
} 

for _ in ipairs(t) do 

    print("NAME: " .. t.name) 
    print("SEX: " .. t.sex) 
    print("AGE: " .. t.age) 
    print("\n") 

end 

我的意思是,這是結果我得到的,當我運行代碼:

attempt to concatenate field 'name' (a nil value) 

回答

3

遍歷t不會改變t。你需要指定你要迭代的值的位置,並使用這些變量。

local t = { 
    {name="John",sex="M",age=19}, 
    {name="Susan",sex="F",age=20} 
} 

for index, value in ipairs(t) do 
    print("NAME: " .. value.name) 
    print("SEX: " .. value.sex) 
    print("AGE: " .. value.age) 
    print("\n") 
end 
+0

謝謝!我不知道。實際上,這是一個愚蠢的例子,所以我可以更改我在項目中使用的原始代碼,我從一個大型文本文件中獲取數據並將它們放在一張桌子上,但我無法打印這些數據,現在我嘗試了原代碼和它的工作,所以謝謝你! – cfrancklin

+1

@cfrancklin:您還應該將此答案標記爲解決您的問題,方法是單擊綠色複選框。 – hugomg