有关排序的数组扩展的问题

时间:2014-06-14 12:14:29

标签: swift

我正在尝试对Array类型的一个小扩展,它按降序对元素进行排序。我已经阅读了有关该主题的其他决议,包括this。但是我收到了一个错误:

  

错误:无法找到接受>提供的参数的'sort'的重载返回Swift.sort(self){$ 0> $ 1}

任何人都可以帮忙解决这个问题:下面的代码

extension Array {
  func sortAsc()->T[] {
     return Swift.sort(self) {$0 > $1}
  }   
}

2 个答案:

答案 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]