我正在尝试对Array类型的一个小扩展,它按降序对元素进行排序。我已经阅读了有关该主题的其他决议,包括this。但是我收到了一个错误:
错误:无法找到接受>提供的参数的'sort'的重载返回Swift.sort(self){$ 0> $ 1}
任何人都可以帮忙解决这个问题:下面的代码
extension Array {
func sortAsc()->T[] {
return Swift.sort(self) {$0 > $1}
}
}
答案 0 :(得分:2)
Afaik Generic Extensions是不可能的。如果是这样,他们就会在他们自己的图书馆里这样做 那么使用普通的func呢?
func sortAsc<T:Comparable>(data: T[])->T[] {
return Swift.sort(data) {$1 > $0}
}
答案 1 :(得分:1)
你可以试试这个:
extension Array where Element: Comparable {
func sortDesc()->Array {
return sort(>)
}
}
[5, 3, 9].sortDesc() // returns [9, 5, 3]