Swiftの勉強をしようと思って、本を眺めてたら出てきた言葉「クロージャ」について調べてみたのでメモ。
クロージャとは
無名関数、ラムダ式などとも呼ばれている。
無名関数という名前の通り、関数名を記述しない書き方ができる。
文法
クロージャの文法は以下の通り。
{ (引数) -> 戻り値型 in
処理
}
Try
試してみた。
var lastYear = 2013
var japanCarOfTheYear = { (year: Int) -> String in
lastYear++
if year == 2014 {
return "マツダ デミオ"
} else {
return "フォルクスワーゲン ゴルフ"
}
}
// "フォルクスワーゲン ゴルフ\n"
print(japanCarOfTheYear(lastYear))
// "マツダ デミオ\n"
print(japanCarOfTheYear(lastYear))
まとめ
ちょっとした導出など、再利用することのない処理であれば関数として定義せずに書けることがわかった。