在swift中强制解包总是需要吗?

时间:2014-06-15 17:24:05

标签: swift

在下一行代码中,我可以在不使用vint的情况下打印!值,但vint是一个可选值(因为toInt函数返回一个可选值)。

let vstr = "123"
let vint = str.toInt()

if vint{
    println(vint) // It works... why?
}

不应该吗?

println(vint!)

1 个答案:

答案 0 :(得分:2)

Swift的标准库定义了这个扩展名:

extension T? : Printable {
    var description: String { get }
}

为所有可选值实现Printable协议。我们看不到实现,但根据其行为,如果可选项为nil,则似乎打印“nil”,否则打印包含的实例。