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

我正在尝试将 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]。值、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”(一个空值)。因此,我的问题是:如何将可变数量的参数作为表键传递?

点赞
用户258523
用户258523

你需要使用 _table[x][y][v] 来实现。 _table[x][y].v_table[x][y]["v"]

2013-07-15 14:59:09