我正在玩 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
.
对可能发生的事情有任何想法吗?