表的构造
构造器是创建和初始化表的表达式。表示Lua特有的强大的东西,最简单的构造函数是{},用来创建一个空表。可以直接初始化数组:
days = {“Sunday”,”Monday”,”Tuesday”,”Wednesday”,”Thursday”,”Friday”,”Saturday”}
不管用何种方式创建table,我们都可以向表中添加或者删除任何类型的域,构造函数仅仅影响表的初始化。
w = {x = 0 ,y = 0 ,label = "console"}
--x = {sin(0),sin(1),sin(2)}
w[1] = "another field"
--x.f = w
print(w["x"])
print(w[1])
--print(x.f[1])
--w.x = nil
print(w[0])
可以用table构建一个list:
list = nil
for line in io.lines() do
list = {next = list,value = line}
end
l = list
while l do
print(l.value)
l = l.next
end
在同一个构造函数中可以混合列表风格和record风格进行初始化,如:
polyline = {color = "blue",thickness = 2,npoints = 4,
{x = 0,y = 0},
{x = -10,y = 0}}
print(polyline[2].x)
注意:不推荐数组下标从0开始,否则很多标准库不能使用。在构造函数的最后”,”是可选的,可以方便以后的扩展。
在构造函数中,区域分隔符逗号可以用分号替代,通常我们使用分号来分割不同类型的表元素。
{x = 10,y = 45;”one”,”two”,”three”}