table:
table 是一个“关联数组”,数组的索引可以是数字或者是字符串
table 的默认初始索引一般以 1 开始
table 不会固定长度大小,有新数据插入时长度会自动增长
table 所有元素之间,总是用逗号 “,” 隔开
table.insert
table.insert将一个元素插入到指定位置
t={1,2,3,4} table.insert( t, 1,2 ) for i=1,#t do print(t[i]) end ta={} table.insert( ta, "a" ) table.insert( ta, 2 ) table.insert( ta, "c" ) for k,v in pairs(ta) do print(k,v) endinsert的第二个参数是可以省略的,这样就会插入到数组的最后,从而不必移动其他元素
table.sort()
对数组进行排序,如果没有提供排序函数,默认是<操作。这里不仅仅是数,对字符串也有效
t={1,4,3,5} table.sort( t) for i=1,#t do print(t[i]) end ta={"ab","zfd","fgv","bcc"} table.sort( ta) for k,v in ipairs(ta) do print(k,v) end报错例子
table.sort是排序函数,它要求要排序的目标table的必须是从1到n连续的,即中间不能有nil
ta={"ab","zfd",2,"fgv","bcc"} table.sort( ta ) for k,v in pairs(ta) do print(k,v) end
table.sort(tableName,function)
local t = { 10,2,15,1,4 } local function compare( a, b ) return a > b end table.sort( t, compare ) print( table.concat( t, ", " ) )多个条件的比较
1.等级比较
2.id比较
3.指数比较
function(a, b) if a.level ~= b.level then return a.level > b.level end if a.id~=b.id then return a.id>b.id end return a.exp > b.exp endconcat()函数列出参数中指定table的数组部分从start位置到end位置的所有元素, 元素间以指定的分隔符(sep)隔开。除了table外, 其他的参数都不是必须的, 分隔符的默认值是空字符, start的默认值是1, end的默认值是数组部分的总长
spring = {"床前", "明月", "地上霜"} print(table.concat(spring, ",")) print(table.concat(spring, ",",1,2)) print(table.concat(spring, "\n",1,3)) num = {3 ,4, 5} print(table.concat (num ,"<"))--床前,明月,地上霜
--床前,明月
--床前 --明月 --地上霜
table.maxn() 含义:table.maxn()函数返回指定table中所有正数key值中最大的key值。 如果不存在key值为正数的元素, 则返回0。 此函数不限于table的数组部分。
table.pack()
table.pack函数是获取一个索引从 1 开始的参数表 table,并会对这个 table 预定义一个字段 n,表示该表的长度
t = table.pack("test", "param1", "param2", "param3") print(t)结果:
1 : test 2 : param1 3 : param2 4 : param3 n : 4
table.unpack(table, start, end)
用于返回 table 里的元素,参数 start 是开始返回的元素位置,默认是 1,参数 end 是返回最后一个元素的位置,默认是 table 最后一个元素的位置,参数 start、end 都是可选
t = {"Lua", "C#", "Python", "Java"} print(,t) print(table.unpack(t)) a, b, c, d = table.unpack(t) print(b) print(a, b, c, d) print(table.unpack(t, 2)) print(table.unpack(t, 2, 3)) --1 : Lua --2 : C# --3 : Python --4 : Java --Lua C# python Java --C# --Lua C# Python Java --C# Python Java --C# Pythontable.remove(table, pos)
删除并返回table数组部分位于pos位置的元素. 其后的元素会被前移. pos参数可选, 默认为table长度, 即从最后一个元素删起,并且参数 pos 的类型只能是数字 number 类型
local tbl = {"A", "B", "C", "D"} table.remove(tbl, 3) print(table.concat(tbl, "、")) table.remove(tbl) print(table.concat(tbl, "、"))