Swiftのトレーリングクロージャの書き方とメリットを初心者向けに徹底解説!
生徒
「先生、Swiftのトレーリングクロージャってなんですか?クロージャと何が違うんですか?」
先生
「トレーリングクロージャは、Swiftで使われる特別な書き方のクロージャです。見た目が少し違うけど、実はとても便利なんですよ。」
生徒
「初心者でも理解できますか?なんだか難しそうで…」
先生
「もちろんです。これからトレーリングクロージャの基本と書き方、そして使うメリットまでしっかり説明していきますね!」
1. トレーリングクロージャとは?
Swift(スウィフト)のトレーリングクロージャとは、関数の最後の引数がクロージャであるときに、クロージャの引数部分を丸かっこの外に書く特別な書き方です。
「トレーリング(Trailing)」とは「後ろに続く」という意味で、関数呼び出しのあとにクロージャを「後ろから」渡すイメージです。
この記法を使うと、コードが読みやすくなるというメリットがあります。
2. 通常のクロージャの書き方
まずは、トレーリングクロージャを使わない通常の書き方を見てみましょう。
func doSomething(action: () -> Void) {
action()
}
doSomething(action: {
print("通常のクロージャを使った処理")
})
ここではactionという引数にクロージャを渡しています。これが基本の形です。
3. トレーリングクロージャの書き方
では、同じ処理をトレーリングクロージャで書いてみましょう。
doSomething {
print("トレーリングクロージャを使った処理")
}
このように、()の外にクロージャを書くことで、よりシンプルでスッキリとした見た目になります。
特に処理が長くなる場合に、読みやすさが大きく向上します。
4. トレーリングクロージャが便利な場面
トレーリングクロージャは、特に次のような場面でよく使われます:
- 配列などのデータを加工するとき(
map、filterなど) - 非同期処理やイベント処理
- アニメーションや通信の完了処理
これらは「あとで実行する処理」を書く必要があり、クロージャがよく使われます。その中で読みやすさを高めるためにトレーリングクロージャが選ばれます。
5. 実際の使用例:mapメソッド
配列の各要素を2倍にする例を、トレーリングクロージャで書いてみましょう。
let numbers = [1, 2, 3, 4, 5]
let doubled = numbers.map { number in
return number * 2
}
print(doubled)
mapという関数の引数にクロージャを渡していますが、トレーリングクロージャ記法を使って丸かっこの外に書いています。
このように、簡潔に書けて読みやすいのが特徴です。
6. 引数が複数ある場合の注意点
関数に複数の引数がある場合、最後の引数がクロージャであれば、トレーリングクロージャを使うことができます。ただし、前の引数は通常通り丸かっこ内に書く必要があります。
func fetchData(url: String, completion: () -> Void) {
print("データ取得中:\(url)")
completion()
}
fetchData(url: "https://example.com") {
print("完了しました!")
}
urlは普通に指定し、completionはトレーリングクロージャで記述しています。
7. トレーリングクロージャのメリットまとめ
- コードが読みやすく、スッキリする
- 処理内容が見やすくなるので、可読性が上がる
- 特にクロージャ内の処理が長いときに便利
初心者の方でも、トレーリングクロージャの書き方を覚えると、Swiftのコードがもっと書きやすくなります。