クロージャ(無名関数)とは
・クロージャは引数として渡すことができるオブジェクト。
・クロージャは、引数として使用できる処理の塊です。
・クロージャ自体は引数ではなく、関数やメソッドに引数として渡すことができます。
・関数の引数に関数を用いたい場合に、クロージャが活躍します。
以下は、関数内でクロージャを呼び出す際の例です。引数名と関数呼び出し名は同じ名前を使う必要があります。
func numArrAndClosure(numArr: [Int], closure: (Int) -> Void) {
for num in numArr {
closure(num)
}
}
numArrAndClosure(numArr: [1, 2, 3, 4, 5], closure: { x in print(x + 1) })
トレイリングクロージャとは何か
メソッドや関数の最後の引数がクロージャの場合、クロージャを括弧 () の外に書くことができる記法が「トレイリングクロージャ」です。
基本的な構文の説明
Swiftでは、クロージャを関数の最後の引数として渡す場合、トレイリングクロージャ構文を使うことでコードを簡潔に記述できます。
・通常のクロージャ:
numArrAndClosure(numArr: [1, 2, 3, 4, 5], closure: { x in primeJudge(x) })
・トレイリングクロージャ:
numArrAndClosure(numArr: [1, 2, 3, 4, 5]) {
x in primeJudge(x)
}
・通常の渡し方では、引数ラベルを明示的に指定する必要があります。
・トレイリングクロージャを使用することで、クロージャを関数呼び出しの外に書くことができ、可読性を向上させることができます。
トレイリングクロージャの利点:
・トレイリングクロージャは、関数の最後の引数としてクロージャを使う場合に、括弧を省略できるため、コードがすっきりします。
・これにより、クロージャの内容が際立ち、全体の可読性が向上します。