思い立ったが吉日!

iOSが好きです。

Arrayのsort

Arrayのsortメソッドについて

クロージャを使って書くと

let array = [1,3,5,7,0,6,3,3]
let newArray = array.sort { (left, right) -> Bool in
    return left > right
}
print("\(newArray)")

それぞれ比較して>がTrueになるようにソートするので、降順にソートしたarrayが返ります。

同じことを省略して書くと

let array = [1,3,5,7,0,6,3,3]
let newArray = array.sort { $0 > $1 }
print("\(newArray)") 

わかりづらいですが、$0は引数の1個目、$1は引数の2個目を表しています。 上の例と比較すると$0がleft $1がrightと同じ意味になってます。

ちなみに sort()は破壊的メソッドで自身をソートして返す sorted()は破壊的でないメソッドでソートされたコピーを返す

Swift命名規則的には破壊的なメソッドは動詞で、 破壊的でないメソッドはedやingをつけるって勉強会で聞きました。

が、playgroundでsortedを試そうとしたら、出てこなかったし、エラーったので一旦諦めます...