从嵌套的 Lua 表中检索 X,Y 坐标

我需要从 Lua 中的嵌套表中获取值,我只是无法弄清楚如何做到这一点,我已经尝试过许多在线示例,但都无效。

任何帮助将不胜感激

table

xy = { a={x=0,y=0},b={x=0,y=100}, c={x=0,y=200}}

如果 unpack(route) 包含 a 和 c,我怎样才能从上面的表中获取 x,y 值。

我试过

for _, v in pairs(xy) do
  print(v[1], v[2])
end

但我得到的只是 nil

点赞
用户1442917
用户1442917

由于“pairs”提供了“key,value”对,因此“value”部分是具有“x”和“y”值的表格;现在你可以简单地这样做:

print(v.x, v.y)

使用“v [1]”和“v [2]”检索该表的第一个和第二个元素,但这些不是“x”和“y”元素,因此在您的情况下会得到“nil”。

一般来说,嵌套表格的访问方式相同:“t.index1.index2”等。如果索引是数字,则必须使用“t [1] [2]”表示法,这意味着:获取作为表格“t”的第一个元素检索到的表格的第二个元素。

2016-02-21 06:56:23
用户3979429
用户3979429

你没有使用数组,因此既不能使用 unpack 也不能使用数字索引。相反,你可以使用语法糖:

print(xy.a.x, xy.a.y)

如果你想要遍历所有值:

for i,v in pairs(xy) do
    print(i..": "v.x, v.y)
end
2016-02-21 12:58:10