如何使用一个参数直接指向2d数组?

时间:2018-03-15 06:15:09

标签: lua lua-table

    arr = {
       {'a',1},
       {'b',2},
       {'c',3}
}

    print(arr[1][1])
    print(arr[2][2])
    print(arr[2])

输出

a 2 表:0x1e41080 ,对于你们来说,这可能是一个非常新手的问题。但即使在这里提出这样的问题真的很尴尬,我问,因为无法在网上找到解决方案。有没有办法可以指出整张桌子?就像我想指出{' b',2}而不是数组/表的地址。

2 个答案:

答案 0 :(得分:2)

目前还不清楚你用“点2d数组”调用什么,因为Lua中没有指针。

在Lua中也没有2d数组,有桌子表。

使用arr[2]获得的内容正是您可以传递的内部表的一个值。它不是“只是地址”,它是一个可以在以后随处读/写的表。您会看到一些看起来像地址的内容,因为这是表的print的默认行为。

local arr = {
       {'a',1},
       {'b',2},
       {'c',3}
}

local function display(v)
    print(v[1], v[2])
end

display(arr[1])
display(arr[2])
display(arr[3])

请注意,您不能拥有表中某个元素的指针(引用)。您需要两个值来处理表的各个元素 - 表本身及其索引的值(不一定是数字或文本)。

答案 1 :(得分:1)

没有内置的方法可以做到这一点。如果您的表都具有相同的结构,您可以使用它来获取字符串:

('{%q,%d}'):format(element[1], element[2])

如果表格更复杂,则可以使用包含更复杂代码的循环。