我正在将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
Run Code Online (Sandbox Code Playgroud)
我将表这样传递给我的函数:htmParser:_dumpSparseToHTML(map,20,20)其中map =我要传递的表,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,值,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
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:“试图连接字段'v'(nil值)。所以,我的问题是:我如何传递可变数量的参数作为表键?