2014-06-14 2 views
0

내림차순으로 요소를 정렬하는 배열 유형에 대한 작은 확장을 시도하고 있습니다. 나는 this을 포함하여 주제에 대한 다른 해결책을 읽었습니다. 이 문제를 해결하는 방법에 대한정렬을위한 배열 확장 관련 문제

error: could not find an overload for 'sort' that accepts the >supplied arguments return Swift.sort(self) {$0 > $1}

수있는 사람의 도움 : AFAIK 일반 확장이 불가능

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

답변

2

아래의 코드 그러나 나는 오류가 발생합니다. 그렇다면 그들은 그들 자신의 libary 에서 그렇게 할 것입니다. 그래서 일반적인 func를 사용하는 것은 어떻습니까?

func sortAsc<T:Comparable>(data: T[])->T[] { 
    return Swift.sort(data) {$1 > $0} 
} 
+0

좋아. 알았다. 그러나 포럼에서 확장 또는 배열로 sum() 구현을 보았습니다. sortAsc의 유형별 구현을 구현할 수 있습니까? – arvind

+0

"일반 확장을 사용할 수 없다"는 의미는 무엇입니까? 어떤 참조? –

+0

배열은'Array '이지만 정렬 할 수 있으려면'Array '이어야하지만 Swift는'extension Array '을 허용하지 않습니다. –

1

이 작업을 시도 할 수 있습니다 :

extension Array where Element: Comparable { 
    func sortDesc()->Array { 
     return sort(>) 
    } 
} 

[5, 3, 9].sortDesc() // returns [9, 5, 3]