【发布时间】:2015-01-02 14:32:54
【问题描述】:
我会直接说:
两者有什么区别:
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")
}
两者在操场上输出相同的结果。
我知道隐式展开不被认为是安全的(在大多数情况下),但是,在这里我在展开之前检查值是否为零?
这两种方法都有效吗?是否存在不同的场景,其中一种被认为是更好的选择?
【问题讨论】:
-
如果 let 只是在单个语句中展开和测试 nil 的一种模式。阅读链接以获取更多信息。 developer.apple.com/library/ios/documentation/Swift/Conceptual/…
-
如果我正在审查您的代码,每次强制展开都会在我脑海中发出警钟,我必须检查以确保您已充分防止该变量为零的可能性。如果代码块有很多行并且不是很简单,则尤其如此。
标签: ios swift optional forced-unwrapping