Swift のクロージャメモ

Swiftの構文で使われている in が最初何者か分からず調べたメモ(for-inじゃない in です)。

in はクロージャの中で利用され、引数・戻り値と実際の処理の間に記載するもの。 クロージャSwiftでは {} で囲まれたものなので、基本構文はこんな感じ。

{ 引数 -> 戻り値 in <実際の処理>}

なお、Wikipediaを見るところ、クロージャの表記はかなり記載を簡略化できるようで実際に試した結果が以下。便利です!がちゃんと勉強しておかないとなんのこっちゃ、となりそうですね。

        // 配列の各要素にクロージャの処理を実行させる
        let test1:Array<Int> = [10, 20, 30].map({
            (number: Int) -> Int in
            let result = 2 * number
            return result
        })
        
        // 上とやっていることは同じ
        let test2:Array<Int> = [10, 20, 30].map{2 * $0};
        
        // クロージャが1文の場合は return を省略できる。また引数は $0,$1...という記法で扱うことができる
        test1.map({println($0)}) //20, 40, 60
        
        // 結果ももちろん同じ なお、関数の最後がクロージャの場合は () も省略可能みたい。なのでこれでもOK
        test2.map{println($0)} //20, 40, 60