0
2

More than 1 year has passed since last update.

【Swift】クロージャ嫌いを克服しよう(関数の引数Ver)

Posted at

目次

1.クロージャを関数の引数にして使用する
2.実例
3.おわりに

1. クロージャを関数の引数にして使用する

  • Swiftはクロージャ(Pythonでいうところの無名関数)多用しますよね? 少なくとも私が開発に携わっているアプリでは、APIの非同期処理も多いので多用されています。
  • クロージャって慣れるまでは読みにくくて仕方ないですよね。ここでは更に読みにくいクロージャを関数の引数として使用している例を解説していきます。

2. 実例

クロージャの登場シーンは多いのですが、関数の引数としても指定できます。

  • closure.swift
    func 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. おわりに

関数の引数が変数だろうが、クロージャだろうが考え方は同じです。
クロージャであれば、必ず実行(呼び出している)箇所が関数内部にあるのでその際に呼ばれるだけです!

今回も最後まで記事を読んでいただきありがとうございました。
目指せ脱初学者!!

0
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2