トレイリングクロージャーとは、関数の引数の最後がクロージャの時、クロージャを()の外に書くことができる記法です。
func sample(parameter: Int, handler: (String) -> Void ) {
handler("parameter is \(parameter)")
}
// トレイリングクロージャなし
sample(parameter: 1, handler: { string in
print(string)
})
// トレイリングクロージャあり
sample(parameter: 1) { string in
print(string)
}
トレイリングクロージャ記法を使用した方がコードがスッキリして可読性が上がります。
Xcodeで関数をかくとき、クロージャ部分をダブルクリックもしくはエンターすると自動的にトレイリングクロージャ記法にしてくれます。
また、引数が1つの時でもトレイリングクロージャは使用できます。その場合は関数呼び出しの()も省略できます。
func sample(handler: (String) -> Void ) {
handler("sample")
}
sample { string in
print(string)
}
参考
[増補改訂第3版]Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 (WEB+DB PRESS plusシリーズ)