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になりましたね!