まあ、よくあるクロージャだ。
func getCounter()->()->Int {
var counter = 0
return { () in ++counter }
}
var countUp = getCounter()
println(countUp()) // "1"を表示
println(countUp()) // "2"を表示
println(countUp()) // "3"を表示
getCounter()は、getCounter関数のローカル変数counterをインクリメントする関数(クロージャ)を返す関数だ。
コメント