在下一行代码中,我可以在不使用vint
的情况下打印!
值,但vint是一个可选值(因为toInt
函数返回一个可选值)。
let vstr = "123"
let vint = str.toInt()
if vint{
println(vint) // It works... why?
}
不应该吗?
println(vint!)
答案 0 :(得分:2)
Swift的标准库定义了这个扩展名:
extension T? : Printable {
var description: String { get }
}
为所有可选值实现Printable协议。我们看不到实现,但根据其行为,如果可选项为nil
,则似乎打印“nil”,否则打印包含的实例。