table.sort(tab,compare)
參數如下:
tab:表名
compare:比較規則函數名
簡略寫法:
a = {1,2,3}
table.sort(a,function(a,b) return a>b end)
compare這個參數是一個函數,它有兩個參數,你可以理解為表中的兩個不同元素,注意不一定是順序的。
a={1,2,3,4,5,2,9}
table.sort(a,function(a,b)print(a,b)return false
end)輸出:
9 1
4 1
9 4
2 4
4 5
3 4
4 2
3 4
4 2
9 2
3 2
9 3
2 1
5 1
2 5
返回false則表示a要在b之前,需要交換它們的位置
返回true則表示a要在b之后,不需要交換它們的位置
其次一定要保證能返回true或者false,但是不能只返回true。
最后排序出來的結果你隨便找兩個元素,一前一后,前與后是滿足的比對標準的,如下面:
知道上述,隨便寫一個?
tab = {3,7,6,1,3,4}
--降序
table.sort(tab,function(a,b)return a>b
end)
for i,v in pairs(tab) doprint(v)
end輸出:
7
6
4
3
3
1
最后結果都滿足a>b,a表示前一個,b表示后一個
總結:你要什么樣的結果,就寫滿足該結果為true的條件,這樣就隨便寫。
我要降序,前一個大于后一個,那就等價前一個參數大于后一個參數,則最終結果滿足a>b為true