Lua将函数参数作为表键传递

时间:2013-07-15 14:46:19

标签: lua lua-table

我正在努力将Lua表的内容导出到HTML文件,以便我可以在浏览器中显示内容。现在我遇到了将函数参数作为表键传递的问题。

我有一个稀疏表:

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(map,20,20)其中map = table我要传递,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'(零值)。 所以,我的问题是:如何将可变数量的参数作为表键传递?

1 个答案:

答案 0 :(得分:4)

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