1. table中不能有nil
table.sort是排序函數,它要求要排序的目標table的必須是從1到n連續的,即中間不能有nil。
2. 重寫的比較函數,兩個值相等時不能return true
此外,當比較函數沒有寫的時候,table.sort默認按照lua里面的排序規則升序排序;
當額外寫了比較函數時,相當於用你額外寫的比較函數重載了lua中自帶的“<”操作符。
這就有一個特別要注意的問題,當兩個數相等的時候,比較函數一定要返回false!
如果兩個值相等都,
排序函數返回true
時則會報錯 invalid order function for sorting
table.sort(tmpQueue, function(a, b)
if (a == nil or b == nil) then
return (a.endTime < b.endTime) --此處千萬不能用小於等於
end)