table 操作
函数
解释
table.concat (table [, step [, start [, end]]])
函数列出参数中指定table的数组部分从start位置到end位置的所有元素, 元素间以指定的分隔符(step)隔开
table.insert (table, [pos,] value)
在table的数组部分指定位置(pos)插入值为value的一个元素. pos参数可选, 默认为数组部分末尾
table.maxn(table)
指定table中所有正数key值中最大的key值. 如果不存在key值为正数的元素, 则返回0。(Lua5.2之后该方法已经不存在了)
table.remove (table [, pos])
返回table数组部分位于pos位置的元素. 其后的元素会被前移. pos参数可选, 默认为table长度, 即从最后一个元素删起。
table.sort (table [, comp])
对给定的table进行升序排序。
table.getn(tableName)
获取表的长度
操作示例
table.concat
1 2 3 4 5 6 7 8 9 fruits = {"banana" ,"orange" ,"apple" } print ("连接后的字符串 " ,table .concat (fruits))print ("连接后的字符串 " ,table .concat (fruits,", " ))print ("连接后的字符串 " ,table .concat (fruits,", " , 2 ,3 ))
执行以上代码输出结果为:
1 2 3 连接后的字符串 bananaorangeapple 连接后的字符串 banana, orange, apple 连接后的字符串 orange, apple
table.insert、table.remove
table.insert() 建议在数组形式的表使用,键值对形式的表直接键值对形式插入 table.remove() 用于数组形式的表,键值对形式的表直接给键赋值nil
1 2 3 4 5 6 7 8 9 10 11 12 13 fruits = {"banana" ,"orange" ,"apple" } table .insert (fruits,"mango" )print ("索引为 4 的元素为 " ,fruits[4 ])table .insert (fruits,2 ,"grapes" )print ("索引为 2 的元素为 " ,fruits[2 ])print ("最后一个元素为 " ,fruits[5 ])table .remove (fruits)print ("移除后最后一个元素为 " ,fruits[5 ])
table.sort
1 2 3 4 5 6 7 8 9 10 11 fruits = {"banana" ,"orange" ,"apple" ,"grapes" } print ("排序前" )for k,v in ipairs (fruits) do print (k,v) end table .sort (fruits)print ("排序后" )for k,v in ipairs (fruits) do print (k,v) end
执行以上代码输出结果为:
1 2 3 4 5 6 7 8 9 10 排序前 1 banana2 orange3 apple4 grapes排序后 1 apple2 banana3 grapes4 orange
Table中最大的正数key值
table.maxn 在 Lua5.2 之后该方法已经不存在了,自定义table_maxn方法来实现。 以下实例演示了如何获取 table 中的最大值:
1 2 3 4 5 6 7 8 9 10 11 12 function (t) local mn = 0 for k, v in pairs (t) do if mn < k then mn = k end end return mn end tbl = {[1 ] = "a" , [2 ] = "b" , [3 ] = "c" , [26 ] = "z" } print ("tbl 长度 " , #tbl)print ("tbl 最大值 " , table_maxn(tbl))
执行以上代码输出结果为:
table.getn
获取数组形式表的元素个数,键值对表使用遍历
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 myTable = {} myTable[1 ] = "1" myTable[2 ] = "2" myTable[3 ] = "3" myTable["r" ] = "Red" myTable["g" ] = "Green" myTable["b" ] = "Blue" print (table .getn (myTable))length = 0 for index, value in pairs (myTable) do length = length + 1 end print (length)