目次
1.クロージャを関数の引数にして使用する
2.実例
3.おわりに
1. クロージャを関数の引数にして使用する
- Swiftはクロージャ(Pythonでいうところの無名関数)多用しますよね? 少なくとも私が開発に携わっているアプリでは、APIの非同期処理も多いので多用されています。
- クロージャって慣れるまでは読みにくくて仕方ないですよね。ここでは更に読みにくいクロージャを関数の引数として使用している例を解説していきます。
2. 実例
クロージャの登場シーンは多いのですが、関数の引数としても指定できます。
-
例
closure.swiftfunc judgeFeeling ( feelingClosure: (Bool) -> Void) { print("How's it going today?") feelingClosure(true) } jedgeFeeling ( feelingClosure: { isHappy in if isHappy { print("Feeling is Happy") } else { print("So sad") } }) //出力結果:Feelng is Happy
-
judgeFeeling関数の引数としてfeelingClosure(クロージャ)を渡さんかい!
という関数を作成しています。 -
judgeFeelingを呼び出す側できちんとクロージャを渡しています。
-
クロージャの引数はBool型、返り値はVoidつまりなしです。
-
実行順は
jedgeFeeling
->print("How's it going today?")
-> `feelingClosure -
簡単いうと
通常の変数の引数にそのままクロージャが入っている
と考えるとわかりやすいです。
-
3. おわりに
関数の引数が変数だろうが、クロージャだろうが考え方は同じです。
クロージャであれば、必ず実行(呼び出している)箇所が関数内部にあるのでその際に呼ばれるだけです!
今回も最後まで記事を読んでいただきありがとうございました。
目指せ脱初学者!!