【问题标题】:Lua pass function argument as a table keyLua 将函数参数作为表键传递
【发布时间】:2013-07-13 11:39:32
【问题描述】:

我正在将 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'(一个零值)。 所以,我的问题是:如何将可变数量的参数作为表键传递?

【问题讨论】:

    标签: lua lua-table


    【解决方案1】:

    您需要为此使用_table[x][y][v]。 _table[x][y].v 是 _table[x][y]["v"]。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-16
      • 2021-03-30
      • 2013-06-03
      • 1970-01-01
      • 2016-11-06
      • 1970-01-01
      • 2017-07-11
      • 2012-01-25
      相关资源
      最近更新 更多