arr1 = {"hello","lua","world"}
print("arr1 是第二个元素是: " .. arr1[2]) --lua
arr2 = arr1
print("arr2 是第二个元素是: " .. arr2[2]) --lua
arr2[2] = "java"
print("arr1 是第二个元素是: " .. arr1[2]) --java (arr1 与 arr2 指向同一块内存,所以arr2修改时arr1同样会被修改)
arr2 = nil --释放变量
print("arr1 是第二个元素是: " .. arr1[2]) --java (arr2被释放后arr1仍然可以访问)
--table.concat(table [,sep [,start [,end]]]) : 连接指定table中的元素,sep指定连接时的分隔符; start,end指定数组起始位置
print(table.concat(arr1)) --hellojavaworld
print(table.concat(arr1," ")) --hello java world
print(table.concat(arr1," ",2)) --java world (table 下标从1开始)
--table.insert(table, [pos,] value) :在table的数组部分指定位置(pos)插入值为value的一个元素. pos参数可选, 默认为数组部分末尾
table.insert(arr1,"lua") --默认在table结尾插入
print(table.concat(arr1," ")) --hello java world lua
table.insert(arr1,2,"javascript") --在下标为2的位置处插入
print(table.concat(arr1," ")) --hello javascript java world lua
--table.remove(table [,pos]) : 删除table中的元素,默认删除最后一个,也可以通过pos指定要删除元素的下标
table.remove(arr1) --默认删除最后一个
print(table.concat(arr1," ")) --hello javascript java world
table.remove(arr1,2) --删除下标为2的位置处的元素
print(table.concat(arr1," ")) --hello java world
--table.sort(table [,comp]) : 对指定的table进行排序,comp可以指定一个排序函数来对table进行排序
table.insert(arr1,2,"zz")
table.insert(arr1,4,"aa")
print(table.concat(arr1," ")) --hello zz java aa world
table.sort(arr1)
print(table.concat(arr1," ")) --aa hello java world zz
table.sort(arr1,function(a,b) return a>b end)
print(table.concat(arr1," ")) --zz world java hello aa
--当我们获取 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
lua中 table
最新推荐文章于 2023-05-08 17:09:32 发布