LUA table学习笔记

时间:2023-03-08 20:36:47
function printT( ... )
for i,v in ipairs(...) do
print(i,v)
end
end t1={}
t2={}
t3={}
table.insert(t1,"t1")
table.insert(t1,"t2")
table.insert(t1,,"t3")
print "1 table.insert-----------"
--printT(t1)
print "2 table.concat-----------"
t4=table.concat( t1, ", ", , #t1)
--print (type(t4).." "..t4)
print "3 table.move-----------"
--[[ http://www.2cto.com/kf/201602/489932.html
table.move (a1, f, e, t [,a2])
将表"a1"中从整数索引"f"到整数索引"e"之间(源区间)的元素
复制到表"a2"中整数索引"t"及之后的位置(目标区间),
表"a2"默认为"a1",目标区间与源区间可以重叠。
--]]
table.move(t1,,,,t2)
--printT(t1)
print "-----------"
--printT(t2)
print "4 table.pack-----------"
--[[ table.pack(···)
创建一个"table",并将参数作为元素以整数索引(1, 2, ...)插入"table"中。
并将"n"这个域存储参数的总个数,返回所创建的"table"。]]
t4=table.pack(,,)
printT(t4) --[[ table.remove (list [, pos])
移除 list 中 pos 位置上的元素,并返回这个被移除的值。 当 pos 是在 1
到 #list 之间的整数时, 它向前移动元素 list[pos+1], list[pos+2], ···, list[#list]
并删除元素 list[#list]; 索引 pos 可以是 #list + 1 ,或在 #list 为 0 时可以是 0 ;
在这些情况下,函数删除元素 list[pos]。
pos 默认为 #list, 因此调用 table.remove(l) 将移除表 l 的最后一个元素。 ]]
print "-----------"
table.remove(t4,)
printT(t4)
print "5 table.pack-----------"
--[[
table.sort (list [, comp]) 在表内从 list[1] 到 list[#list] 原地 对其间元素按指定次序排序。 如果提供了 comp ,
它必须是一个可以接收两个列表内元素为参数的函数。
当第一个元素需要排在第二个元素之前时,返回真 (因此 not comp(list[i+1],list[i]) 在排序结束后将为真)。
如果没有提供 comp, 将使用标准 Lua 操作 < 作为替代品。
排序算法并不稳定; 即当两个元素次序相等时,它们在排序后的相对位置可能会改变。 使用函数"comp"排序表"list"中的元素。
"comp"接收两个列表内元素作为参数,
当第一个元素需要排在第二个元素之前时,返回"true",否则返回"false"。
如果没有提供"comp",默认使用"<"(小于 操作符)比对元素。
]]
table.sort(t4,function (x1,x2 )
return x1>x2
end)
printT(t4)