Lua - 从嵌套表中获取值

4

好的,我一直在寻找这个答案,但是没有地方有答案。

我有一个嵌套的表格(示例):

{
  {
    "Username",
    "Password",
    "Balance",
  },
  {
    "username1",
    "password1",
    1000000,
  },
  {
    "username2",
    "password2",
    1000000,
  },
}

事实是我不能迭代循环来查看这些表格,也无法从表格中获取值。 没有嵌套的表格可以像这样轻松访问:
print(a[1])

如何循环它们并从中获取值?

当你执行print(a[1])时会发生什么?你试过执行print(a[1][1])吗? - Tom Blodget
2个回答

4
使用 pairsipairs 迭代表格:
local t = {
  {
    "Username",
    "Password",
    "Balance",
  },
  {
    "username1",
    "password1",
    1000000,
  },
  {
    "username2",
    "password2",
    1000000,
  },
}

for _, v in ipairs(t) do
  print(v[1], v[2],v[3])
end

输出结果为:

Username    Password    Balance
username1   password1   1000000
username2   password2   1000000

我认为在这种情况下,ipairs是更好的选择。 - hugomg

3
如果您拥有
a =  {
   { "Username", "Password", "Balance", },
   { "username1", "password1", 1000000, },
   { "username2", "password2", 1000000, },
}

那么,a 的第二个元素将是 a[2],即表格 { "username1", "password1", 1000000, }。如果你打印它,它看起来类似于 table: 0x872690 - 这只是 Lua 默认情况下打印表的方式。要访问内部字段,只需使用相同的索引运算符。对于第一个字段,我们使用 a[2][1],对于第二个字段,我们使用 a[2][2] 等。

 for i = 2, #a do
     print(a[i][1], a[i][2], a[i][3])
 end

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接