lua中table.sort的回调函数

- CONTENT 
-- --- 
lua中table.sort的回调函数的在确定大小关系(>/<)时会关联第一个table参数的key值。如果回调函数只是给出大于或者小于的关系,那么第一个table参数(一般是数字值)会按照给出的大小顺序进行排序(示例一);如果第一个table参数是纯粹的字符(类似示例二),要想根据第二个回调函数指出的大小关系进行排序,就需要注意第一个table参数与回调函数的key的对应关系了,具体参见如下第二示例。 

-- --- 
-- 实例一 
-- --- 
local t = { 3,2,5,1,4 } 
local function compare( a, b ) 
return a < b 
end 

table.sort( t, compare ) 
print( table.concat( t, ", " ) ) -- 1, 2, 3, 4, 5 

-- --- 
-- 实例二 
-- --- 
names = {"Peter", "Paul", "Mary"} 
grades = {Mary = 10, Paul = 7, Peter = 8} 

function sortbygrade (names, grades) 
table.sort(names, function (n1, n2) 
return grades[n1] < grades[n2] 
end) 
end 

sortbygrade(names, grades) 
print(table.concat( names, ", "))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值