2016-12-31 4 views
-4
let unsortedArray = [98,23,643,678,2,568,1,234,556,4] { 
    (first:Int , second:Int) -> Bool in 

    if first < second { 
     return true 
    } else{ 
     return false 
    } 
} 

上記のコードは、Swift 2とXcode 7.3で並べ替えられていない配列です。未分類の配列をクロージャで並べ替えます。

結果を印刷するにはどうすればいいですか?

+0

閉鎖を学び閉鎖したい –

答えて

1

構文は次のとおりです。sortだが、スウィフト3で、それは今sorted呼ばれスウィフト2.3で

let unsortedArray = [98, 23, 643, 678, 2, 568, 1, 234, 556, 4] 
let sortedArray = unsortedArray.sort() { (first: Int, second: Int) -> Bool in 
    if first < second { 
     return true 
    } else { 
     return false 
    } 
} 

print("\(sortedArray)") 

注意、。ところで


、これを簡略化することができます。

let sortedArray = unsortedArray.sort { (first: Int, second: Int) -> Bool in 
    return first < second 
} 

あるいは、さらに匿名の閉鎖の引数を使用するように単純化:

let sortedArray = unsortedArray.sort { 
    return $0 < $1 
} 

クロージャ内の単一の式があるので、さらに簡単に:

let sortedArray = unsortedArray.sort { $0 < $1 } 
さらにように簡略化

または、:

let sortedArray = unsortedArray.sort(<) 

あるいは、配列の要素は、Intタイプは、Comparableに準拠しているので、あなたは完全に閉鎖を省略し、全くパラメータを取らない異なるsortメソッドを使用することができます。

let sortedArray = unsortedArray.sort() 

注、これは、配列の要素が持っている必要があります。

less- (func <)が であり、適合は、selfの要素に対して strict weak ordering です。