【问题标题】:Lua - Getting values from nested tablesLua - 从嵌套表中获取值
【发布时间】:2014-08-27 06:32:24
【问题描述】:

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

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

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

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

print(a[1])

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

【问题讨论】:

  • 当您执行print(a[1]) 时会发生什么?你试过print(a[1][1])吗?

标签: lua iteration lua-table nested-table


【解决方案1】:

使用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 是更好的选择
【解决方案2】:

如果你有

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

【讨论】:

    猜你喜欢
    • 2020-05-05
    • 2015-03-26
    • 2017-05-14
    • 2014-01-23
    • 1970-01-01
    • 2019-08-14
    • 1970-01-01
    • 1970-01-01
    • 2015-05-21
    相关资源
    最近更新 更多