我需要从Lua中的嵌套表中获取值,我只是无法弄清楚如何做到这一点,我尝试了很多在线示例但没有工作。
任何帮助将不胜感激
表
xy = { a={x=0,y=0},b={x=0,y=100}, c={x=0,y=200}}
如果解包(路由)包含a和c,我如何从上表中获取x,y值。
我试过了
for _, v in pairs(xy) do
print(v[1], v[2])
end
但我回来的只是零
答案 0 :(得分:5)
由于It's Yours!
为您提供pairs
对,key, value
部分是包含value
和x
值的表格;现在你可以做到:
y
使用print(v.x, v.y)
和v[1]
检索该表的第一个和第二个元素,但这些不是 v[2]
和x
元素,因此& #39;为什么你得到y
。
通常,嵌套表的访问方式相同:nil
等。如果索引是数字,则需要使用t.index1.index2
表示法,这意味着:获取表的第二个元素检索为表t[1][2]
的第一个元素。
答案 1 :(得分:3)
您没有使用数组,因此解压缩或数字索引都不会对您有所帮助。相反,你可以使用语法糖:
print(xy.a.x, xy.a.y)
如果你想遍历它们:
for i,v in pairs(xy) do
print(i..": "v.x, v.y)
end