キノコが何か作るブログ

ゲーム・ドット絵・アプリなどを作ります

MENU

swiftのクロージャーの使い方【備忘録】

まずクロージャーの基本の形です。

{ (引数) -> 戻り値の型 in 
    //何らかの処理
}

関数名は書きません。JavaScriptの即時関数みたいだなーと思いました。

いろいろな書き方

関数の引数として使う

即時実行される関数で、関数の引数として使うことも可能です。
例えばこんな感じ

func testFunc(num1: Int, num2: Int, str: String, closure: (_ num1: Int, _ num2: Int) -> Int) {
    print(str + String(closure(num1, num2))) //計算結果は:300と表示される
}

testFunc(num1: 100, num2: 200, str: "計算結果は:", closure: { (num1: Int, num2: Int) -> Int in num1 + num2})

処理が単文だとreturn文を省略できる

処理を単文で書く場合はreturnが入りません。
勝手に戻り値を返してくれます。

let closure = { (num1: Int, num2: Int) -> Int in 
    //足算する
    num1 + num2
}
print(closure(100, 200)) //300と表示される

便利だけど、書き方がたくさんあって覚えるのが大変です。

プライバシーポリシー