2013-07-15 16 views
2

我正在將Lua表的內容導出到HTML文件,以便我可以在瀏覽器中顯示內容。現在我遇到了將函數參數作爲表鍵的問題。作爲表鍵的Lua pass函數參數

我有一個稀疏表作爲這樣:

map = {} 
for x = 1, 20 do 
    map[x] = {} 
    for y = 1, 20 do 
     map[x][y] = {} 
     map[x][y].node = math.random(1,20) 
     map[x][y].image = "path/to/image.png" 
    end 
end 

我穿過的所述臺到我的功能,例如: htmParser:_dumpSparseToHTML(地圖,20,20),其中地圖=表我想通過,20 ,20 =陣列的寬度和高度。 _dumpSparseToHTML中的某處將v.node和v.image的值寫入文件。如何在不知道表中鍵的名稱的情況下處理完全相同的事情?例如,map可以包含map [x] [y] .value,map [x] [y] .gfx,map [x] [y] .nodeType,我想將它們傳遞爲htmParser:_dumpSparseToHTML(map,20 ,20,value,gfx,nodeType等)。

我知道Lua可以通過將函數定義爲:_dumpSparseToHTML(map,20,20,...)來處理可變數量的參數。我試圖做到以下幾點:

--_table = map 
for i,v in ipairs(arg) do 
    file:write("<td>".._table[x][y].v.."</td>) 
end 

我得到的錯誤是:「試圖串連場‘V’(一個零值) 所以,我的問題是:我如何通過一個可變數量的參數如表鍵?

回答

4

您需要使用_table[x][y][v]了點。_table[x][y].v_table[x][y]["v"]