Lua 中的 table 类型是一个 “关联数组”,数组的索引可以是数字或者是字符串,所有索引值都需要用 “[” 和 “]” 括起来;如果是字符串,还可以去掉引号和中括号; 即如果没有 [] 括起,则认为是字符串索引。
-- 初始化表
mytable = {}
-- 指定值
mytable[1]= "Lua"
-- 移除引用
mytable = nil
-- lua 垃圾回收会释放内存
参数 | 描述 |
---|---|
mytable | 变量名。 |
构造器是创建和初始化表的表达式,表是 Lua 特有的功能强大的东西,最简单的构造函数是 {},用来创建一个空表,可以直接初始化数组。
使用 {}
创建空表
#!/usr/bin/lua
print("haicoder(www.haicoder.net)\n")
mytable = {}
print("mytable =", mytable, "type mytable =", type(mytable))
程序运行后,控制台输出如下:
我们定义了一个变量 mytable,并且赋值为 {}
, 并同时输出它的类型,我们发现,它的类型都是 table 类型,并且,如果直接输出 table 变量名,那么输出了其地址。
table 的索引从 1 开始
#!/usr/bin/lua
print("haicoder(www.haicoder.net)\n")
mytable = {}
mytable[1] = "Lua"
print("mytable[1] =", mytable[1])
mytable["name"] = "haicoder"
print("mytable[name] =", mytable["name"])
程序运行后,控制台输出如下:
这里我们一定要注意,table 的数字索引从 1 开始,同时,table 也可以使用字符串索引。
直接给对应的索引赋值即可修改 table 的值
#!/usr/bin/lua
print("haicoder(www.haicoder.net)\n")
mytable = {}
mytable["name"] = "haicoder"
print("before mytable[name] =", mytable["name"])
mytable["name"] = "HaiCoder"
print("after mytable[name] =", mytable["name"])
程序运行后,控制台输出如下:
我们可以看到,如果索引不存在,那么会直接向 table 中插入一个元素,如果索引存在,那么会修改对应索引的值。
Lua 中的 table 类型是一个 “关联数组”,数组的索引可以是数字或者是字符串,所有索引值都需要用 “[” 和 “]” 括起来;如果是字符串,还可以去掉引号和中括号; 即如果没有 [] 括起,则认为是字符串索引。