Lua - 从嵌套表中获取值

时间:2014-07-06 19:09:48

标签: lua iteration lua-table nested-table

好的,所以我一直在寻找这个,但没有答案。

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

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

问题是我不能迭代循环来查看这些表,也不能从表中获取值。 没有嵌套表可以像下面这样轻松访问:

print(a[1])

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:3)

如果你有

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

然后a的第二个元素将是a[2],即{ "username1", "password1", 1000000, }。如果hyou打印它看起来类似于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