1.table 是不固定大小的,你可以根据自己需要进行扩容。
2.通过table来解决模块(module)、包(package)和对象(Object)的。
声明table
mytable = {} - -声明一个空的表
mytable = {key1 = “value1”,key2 = “value2”} - - 键值对的形式
mytable = {“value1”,“value2”} - -数组的形式,Lua下标是以1开始的
mytable.key1 = “hello” - -适用于键值对
mytable[“key2”] = “world” - -适用于键值对
mytable[1] = 34 – 适用于数组的形式
mytable = nil - - lua 垃圾回收会释放内存
当我们为 table a 并设置元素,然后将 a 赋值给 b,则 a 与 b 都指向同一个内存。如果 a 设置为 nil ,则 b 同样能访问 table 的元素。一个内存没有指定的变量的时候,Lua的垃圾回收机制会清理相对应的内存。
Table 操作函数
Table遍历
array = {1,2,3,4,5,6}
方法一
for k,v in pairs(array) do
print(k,v)
end
方法二
for k,v in ipairs(array) do
print(k,v)
end
遍历数组
for i = 1 , #(array) do
print(array[i])
end
注意:
当我们获取 table 的长度的时候无论是使用 # 还是 table.getn 其都会在索引中断的地方停止计数,而导致无法正确取得 table 的长度。
function table_leng(t)
local leng=0
for k, v in pairs(t) do
leng=leng+1
end
return leng;
end
|
请发表评论