2015-10-20 31 views
2

因此,我創建了一個Lua程序來跟蹤我父親購買的房產的需求,並且我想在帶有名稱的表格內製作表格。所以當我嘗試通過我創建的函數添加它時(我將顯示該函數),它預計)「=」是。表名內部表

--The table I'm using to store everything 
repair={} 
--The function I'm using to create tables inside tables 
function rAdd(name) 
table.insert(repair, name) 
end 
--The function I'm using to add data to those tables 
function tAdd(table, name) 
table.insert(table, name) 
end 
rAdd(wall={}) 
tAdd(wall, "Due for paint job") 

,當我嘗試添加它(rAdd(wall={})),預計我結束通過)的說法在「=」。請幫忙!

+0

不能在值*函數調用分配給一個變量* 。你想在那裏做什麼?你想嵌套表嗎? 't = {f = {}}'?否則是'wall = {}; 'rAdd(「wall」)'你想要什麼? –

回答

2

而是嘲諷周圍table.insert的,只是用事實Lua中的表可以像訪問,以及表:

repair["wall"] = {} 

現在你可以真正插入到它:

table.insert(repair["wall"], "Due for a paint job") 

如果你想隱藏的功能背後的全局變量:

function rAdd(name, value) 
    repair[name] = value 
end 

rAdd("wall", {}); 

或者,如果喲ü真的想通過在表格形式條目:

function rAddN(entries) 
    for k,v in pairs(entries) do 
     repair[k] = v 
    end 
end 

rAddN({ wall = {} }) 

注意,您可以在此情況下省略括號:

rAddN { wall = {} } 
+0

非常感謝!但是......我遇到了另一個問題。每當我有了table.insert,它就會認爲它是一個零值。這發生在過去,我認爲這是某種語法錯誤,你有解釋嗎? –