我是新手,所以如果这个问题听起来很愚蠢,请原谅我。以下是可选绑定的示例。它是如何工作的,我理解。但为什么需要它,我无法理解。
var optionalName: String? = "John Appleseed"
var greeting = "Hello!"
if let name = optionalName {
greeting = "Hello, \(name)"
}
而不是使用&#34的新结构;如果让"我们可以使用下面的代码。它有什么危害?为什么我们要完全采取额外的临时变量?提前致谢。
var optionalName: String = "John Appleseed"
var greeting = "Hello!"
if optionalName != nil {
greeting = "Hello, \(optionalName)"
}
答案 0 :(得分:2)
if let
构造允许您“解包”可选项以便可以使用该值(当它不是nil
时)。
简单地测试不是nil
并不会改变你有一个可选的事实。
因此if let
构造允许您在一个步骤中测试和解包可选项。这是一种方便,为您提供安全的可选方式。
只要您不希望以任何有意义的方式使用包装值(即您只是测试不是nil),只测试非nil
没有任何害处。或者,您计划在每次要使用同一范围内的值时使用!
运算符强制解包。
在大多数情况下,你可能想要使用该值,如果它不是nil,那么if let
构造提供了一种安全便捷的方法。