私はSwift拡張機能をいじっていて、Boolを拡張しようとしているときに奇妙なバグに頭をぶつけました:
typealias Task = ()->()
extension Bool{
func untilFalse(task: Task){
while !self {println(self); task()}
}
}
var i = 2
(i < 1).untilFalse{
println(i)
println("\(i) bottles of beer on the wall, \(i) bottles of beer.")
i--
println("Take one down and pass it around, \(i) bottles of beer on the wall.")
}
boolean
何らかの理由で、式が になった後でもループが続くだけtrue
です。
何が起こっているのでしょうか?