连接 table 中的第一个索引连续的多项
例如
local mytable={"this","is","game"} --不指定分隔符、开始index(默认1)、结束index(默认maxn) print(table.concat( mytable)) --指定分隔符,不指定开始index,结束index print(table.concat( mytable,"-")) --指定分隔符,指定开始index,不指定结束index print(table.concat( mytable,"-",2)) --指定分隔符,指定开始index,指定结束index print(table.concat( mytable,1,2 ))
输出结果
thisisgame this-is-game is-game this-is
再例如
local mytable= { [1]="a",[2]="b",[3]="15",[100]="1500",[101]="1501" } print(table.concat( mytable,"-"))
结果输出
a-b-15
table.insert(table,pos,value)
在指定位置插入一项,如果没有指定位置,则插入到结尾
local mytable={"is","game"} table.insert(mytable,"happly") table.insert(mytable,"play") table.insert(mytable,"this") print(table.concat( mytable,"-"))
输出结果
this-is-game-happly-play
table.maxn(table)
获取table中的最大索引值
#table获取第一个连续索引的最大值
例如
local mytable= { [1]="a",[101]="1501" } print(#mytable) print(table.maxn(mytable))
输出结果
3 101
table.remove(table,pos)
移除指定位置的元素,如果没有指定pos,则移除第一个连续索引末尾的元素。注意元素被删除后,后面的元素会往前移。
例如
local mytable= { [1]="a",[101]="1501",m_name="ddddd" } table.remove(mytable) for k,v in pairs(mytable) do print(k,v) end
输出结果
1 a 2 b m_name ddddd 100 1500 101 1501
可以看到,不指定pos,然后mytable[3]被移除了
再例如
local mytable= { [1]="a",m_name="ddddd" } table.remove(mytable,1) for k,v) end
输出结果
1 b 2 15 m_name ddddd 100 1500 101 1501
可以看到,把 mytable[1] 删除后,后面的元素前移了。
很多人习惯把 mytable[1]=nil 这样去删除一个元素,但是这样会出现问题。虽然 mytable[1]==nil,但是连续索引就断掉了。一些对于连续索引的 *** 作就不能执行了。比如下面的例子
local mytable= { [1]="a",m_name="ddddd" } mytable[1]=nil for i,v in ipairs(mytable) do print(i,v) end
输出结果是:什么都没有,空的
对于不是连续索引的 其它项,我们将其置为 nil 即可,例如:
local mytable= { [1]="a",m_name="ddddd" } mytable[100]=nil for k,v) end
输出结果
1 a 2 b 3 15 m_name ddddd 101 1501
table.sort( tablename,sortfunction )
对table 进行排序,如果不指定 softfunction 排序算法,默认是升序排序
例如
local mytable= { 1,3,4,2 } print("before : " .. table.concat( mytable,"-" )) table.sort( mytable ) print("after : " .. table.concat( mytable,"-" ))
输出结果
before : 1-3-4-2 after : 1-2-3-4
我们可以自己指定排序函数,比如我这里让它降序排序
local mytable= { 1,"-" )) table.sort( mytable,function( var1,var2 ) -- body return var1>var2 end) print("after : " .. table.concat( mytable,"-" ))
结果输出
before : 1-3-4-2 after : 4-3-2-1
table.foreachi(mytable,function( i,v ))
对索引从 1 开始的项进行遍历,索引不是数字的不参与遍历
例如
local mytable= { 1,[1]="this",is="is",game="game",2 } table.foreachi(mytable,function( k,v ) -- body print(k,v) end)
结果输出
1 this 2 3 3 4 4 2
这里注意:table 中索引相同的值会被覆盖哦 table.foreach(mytable,v )
遍历所有项
例如
local mytable= { 1,2 } table.foreach(mytable,v) end)
结果输出
1 this 2 3 3 4 4 2 is is game game总结
以上是内存溢出为你收集整理的Lua 入门学习教程(一) Table 函数库全部内容,希望文章能够帮你解决Lua 入门学习教程(一) Table 函数库所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)