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を試そうとしたら、出てこなかったし、エラーったので一旦諦めます...