为什么这个Lua表中只有4个字段?不应该';不是有7个吗?

为什么这个Lua表中只有4个字段?不应该';不是有7个吗?,lua,lua-table,Lua,Lua Table,为什么这个Lua表中只有4个字段?不应该有7个吗 polyline = {color="blue", thickness=2, npoints=4, {x=0, y=0}, {x=10, y=0}, {x=-10, y=1}, {x=0, y=1} } print(table.maxn(polyline)) -

为什么这个Lua表中只有4个字段?不应该有7个吗

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

print(table.maxn(polyline))    -- returns 4. Why?
print(polyline[2].x)   -- returns 10. Why? 

我认为
多段线[2]
将索引到“厚度”,这是该表中的第二个字段。

也许您应该重新阅读。总之,表中的命名字段(即颜色、厚度、npoints)没有指定任何数字索引,只有名称。如果省略名称,将生成基于1的索引。您对
多段线的定义等同于此定义:

   polyline = {
                 color="blue", thickness=2, npoints=4,
                 [1] = {x=0,   y=0},
                 [2] = {x=10, y=0},
                 [3] = {x=-10, y=1},
                 [4] = {x=0,   y=1}
               }
这解释了
打印(折线[2].x)
的输出(此外,Lua表格中的表格字段没有任何顺序;
对可以按任何顺序枚举)。至于:

[table.maxn]返回最大的正数值 给定表的索引,如果 表中没有正数值 指数(要完成其工作,请执行此功能 对整体进行线性遍历 (表)

所以输出再次是正确的。该表实际上包含7个字段,但
table.maxn
根本不返回字段总数