我正在努力将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'(零值)。 所以,我的问题是:如何将可变数量的参数作为表键传递?
答案 0 :(得分:4)
您需要使用_table[x][y][v]
。 _table[x][y].v
为_table[x][y]["v"]
。