如何理解 Lua 中的表格?

    > polyline = {color = "blue", thickness = 2, npoints = 4, {x=0,y=0}, {x=-10,y=0}, {x=-10,y=1}, {x=0,y=1}}
    > print(polyline[2])
    table: 0x55ad5c0f3f90
    > print(polyline[2].x)
-10

为什么 print(polyline[2]) 输出 -10?

点赞
用户2858170
用户2858170

如果你没有明确提供键名,那么在表构造器内,表元素会被分配给数值键。

polyline = {color = "blue", thickness = 2, npoints = 4, {x=0,y=0}, {x=-10,y=0}, {x=-10,y=1}, {x=0,y=1}}

等价于

do
  polyline = {}
  polyline.color = "blue"
  polyline.thickness = 2
  polyline.npoints = 4
  do
    polyline[1] = {}
    polyline[1].x = 0
    polyline[1].y = 0
  end
  do
    polyline[2] = {}
    polyline[2].x = -10
    polyline[2].y = 0
  end
  do
    polyline[3] = {}
    polyline[3].x = -10
    polyline[3].y = 1
  end
  do
    polyline[4] = {}
    polyline[4].x = 0
    polyline[4].y = 1
  end
end

参考资料:

https://www.lua.org/manual/5.3/manual.html#3.4.9

2019-11-08 12:00:35