1
我有以下結構的表:排序LUA表
我想要做的,就是用一個委託函數進行排序與table.sort(),這樣該表中的優先級變量(高,低,中等等)對列表中的高位進行排序,然後是中等和低位。我會如何去做這件事?
我有以下結構的表:排序LUA表
我想要做的,就是用一個委託函數進行排序與table.sort(),這樣該表中的優先級變量(高,低,中等等)對列表中的高位進行排序,然後是中等和低位。我會如何去做這件事?
你似乎知道table.sort
是如何工作的,所以你卡在哪裏? 只需創建轉換優先名稱爲整數查找表,並且比較這些:
priorities = {high = 2, medium = 1, low = 0}
table.sort(t, function(e1, e2)
return priorities[e1[2]] > priorities[e2[2]]
end)
table.sort(t,
function(e1, e2)
return e1[2]:sub(-1) < e2[2]:sub(-1)
end
)
滑稽的想法,但非常模糊和不靈活的,你不覺得嗎? – 2013-03-16 19:03:37
@ m.buettner - 這是代碼高爾夫風格的做法:-) – 2013-03-16 19:17:07
我只是想補充一點小心,因爲這是一個非常緊湊的解決方案,但我認爲不應該進入生產代碼;) – 2013-03-16 19:36:20