LoginSignup
4
3

More than 5 years have passed since last update.

Swiftのクロージャについて

Last updated at Posted at 2015-05-08

GWを利用してSwiftの勉強をしたので、覚え書きとしてまとめてみました。

Swiftでのクロージャの書き方

基本の書き方は下記のような感じ。

// 仮引数・戻り値あり
{
    (hoge: String) -> String in 
    // 何かすごい処理
}

// 仮引数・戻り値なし
{
    () -> Void in
    // 何かすごい処理
}

クロージャを引数とした関数を定義する場合

クロージャを引数とした関数を定義する場合は、下記のように書きます。

func extract(list: [String], filter: String -> Bool) -> [String] {
    var sel = [String]()
    for s in list {
        if filter(s) {
            sel.append(s)
        }
    }
    return sel
}

接尾クロージャについて

末尾引数にクロージャを指定した関数を呼び出す際、カッコ書きを省略できます。

これを接尾クロージャ(Trailing Closure)というらしいです。


var an = ["TSUBUAN", "DAMEAN", "TSUBUAN"]
let shiko_no_an: [String] = extract(an){
    if $0 == "TSUBUAN" {
        return true
    }
    return false
}

// ["TSUBUAN", "TSUBUAN"]
shiko_no_an

Swiftはやりたいことが直感的に書けて、素敵ですね!

心の底からOSSになってほしいです...

2015/12/09 追記
OSSになりましたね!

4
3
0

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
4
3