外部関数のローカル変数への参照を保持するクロージャーを作成しようとしていますが、このあいまいなエラー int is not same to unint8 を取得し続けています。ここには配列が含まれていないため、意味がありません。こちらも関係者なしUInt8s
。
func increment(n:Int)-> ()->Int {
var i = 0
var incrementByN = {
() -> Int in
i += n
}
return incrementByN
}
var inner = increment(4)
inner()
inner()
inner()
i
後に戻ることでこれを修正できることがわかりましたi+=n
。自然に戻ると思っていi+=n
たのですが、そうではないようです。