SwiftではClosureを作るときに、束縛変数のエイリアスが組み込まれている。
Scalaではプレースホルダーをつかうやつ。
Closureを一番丁寧に書くとこう
let reversed = sort(names, { (s1: String, s2: String) -> Bool in return s1 < s2}
でも型推論にまかせて型は書かなくてもいいとして、変数自体も別に名前を付けたくない場合がある。
どうせスコープ小さいし。そういう場合には$0
とかを使う。シェル変数みたい。
let reversed = sort(names, { $0 > $1 } )
これは一番目の変数が二番目の変数よりも後ろに来ますよということを表すClosure。Scalaだと_
なので各変数は一度しか使えないけど、Swiftでは区別されているので何度も使えるみたい。