0
是否可以將<,>
運算符傳遞給函數以更改sortInPlace
調用?與複製此功能和更改>
或手動檢查另一個參數並使用條件邏輯進行排序相反。通過排序運算符
mutating func sortTasksPriorityAscending() {
self.tasks.sortInPlace {$0.priority > $1.priority}
}
是否可以將<,>
運算符傳遞給函數以更改sortInPlace
調用?與複製此功能和更改>
或手動檢查另一個參數並使用條件邏輯進行排序相反。通過排序運算符
mutating func sortTasksPriorityAscending() {
self.tasks.sortInPlace {$0.priority > $1.priority}
}
什麼麻煩???
var arr = [1,2,3,4]
arr.sortInPlace(>)
print(arr) // [4, 3, 2, 1]
你的情況,其中任務是任務的數組
:可比,那麼就定義< 例如正確的版本...
struct S: Comparable {
var i: Int
}
func <(lhs: S, rhs: S)->Bool {
return lhs.i < rhs.i
}
func ==(lhs: S, rhs: S)->Bool {
return lhs.i == rhs.i
}
var arr = [S(i: 2),S(i: 3),S(i: 1)]
arr.sortInPlace(<)
print(arr) // [S(i: 1), S(i: 2), S(i: 3)]
arr.sortInPlace(>)
print(arr) // [S(i: 3), S(i: 2), S(i: 1)]
UPDATE
可能我不不明白你的問題?
func foo(arr:[S], sortop: (S,S)->Bool) {
var arr = arr
arr.sortInPlace(sortop)
print(arr)
}
foo(arr, sortop: >)
foo(arr, sortop: <)
IM排序上的自定義屬性,我想運營商傳遞給可能的話 – chris
這是我的回答的功能,不是嗎? – user3441734