我会直接说:
有什么区别:
var test: String?
test = "this is an optional string"
if test != nil {
println("\(test!) IS NOT nil")
} else {
println("test is nil")
}
和
if let test = test {
println("\(test) IS NOT nil")
} else {
println("test is nil")
}
两者都在操场上输出相同的结果。
我知道隐式展开不被认为是安全的(在大多数情况下)但是,在这里我在展开之前检查这些值是否为零?
两种方法都有效吗?是否存在不同的场景,其中一种被认为是更好的选择?