2

我正在将 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 = 我要传递的表,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

1 回答 1

5

你需要使用_table[x][y][v]它。_table[x][y].v_table[x][y]["v"]

于 2013-07-15T14:59:09.153 回答