如何使用一个参数直接指向二维数组?

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

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

输出为

a 2 table: 0x1e41080,这可能是一个非常新手的问题。但即使在这里问这样的问题真的很尴尬,我问是因为在网上找不到解决方案。是否有一种方法可以指向整个表格?例如,我想指向{'b',2}而不是数组/表的地址。

点赞
用户3574628
用户3574628

将下面翻译成中文并且保留原本的 markdown 格式

没有内置的方法可以做到。如果你的表格都有相同的结构,你可以使用下面这个方法得到一个字符串:

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

如果你的表格更加复杂,你可以使用循环和更复杂的代码。

2018-03-15 07:42:27
用户5675002
用户5675002

在 Lua 中没有指针,因此不清楚您所谓的“2d 数组”指的是什么。

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])

请注意,您无法将指针(引用)指向表格中的某个元素。为了寻址表格中的各个元素,您需要两个值 - 一个是表格本身,另一个是它的索引值(该索引值不一定是数字或文本)。

2018-03-15 10:39:40