首页 > 解决方案 > 如何理解 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 ?

标签: lua

解决方案


如果您没有显式提供键,则表元素将分配给表构造函数中的数字键。

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


推荐阅读