Lua - 从嵌套表中获取值
Posted
技术标签:
【中文标题】Lua - 从嵌套表中获取值【英文标题】:Lua - Getting values from nested tables 【发布时间】: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])
吗?
【参考方案1】:
使用pairs
或ipairs
遍历表:
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
【讨论】:
以上是关于Lua - 从嵌套表中获取值的主要内容,如果未能解决你的问题,请参考以下文章