为什么我们首先需要可选的绑定结构
Why we need optional binding construct in first place
我是 swift 的新手,所以如果这个问题听起来很愚蠢,请原谅我。下面是可选绑定的示例。它是如何工作的,我明白了。但是为什么需要它,我无法理解。
var optionalName: String? = "John Appleseed"
var greeting = "Hello!"
if let name = optionalName {
greeting = "Hello, \(name)"
}
我们可以使用下面的代码来代替 "If let" 的新构造。它有什么害处?为什么我们要完全采用一个额外的临时变量?提前致谢。
var optionalName: String = "John Appleseed"
var greeting = "Hello!"
if optionalName != nil {
greeting = "Hello, \(optionalName)"
}
if let
构造允许您 "unwrap" 可选值以便可以使用该值(当它不是 nil
时)。
简单地测试是否 nil
不会改变您有一个可选的事实。
因此 if let
构造允许您一步测试和解包可选。这很方便,并为您提供了一种安全的方式来使用可选的。
只要您不希望以任何有意义的方式使用包装值(即,您只是在测试非零),仅测试非 nil
并没有什么坏处。或者您计划每次要在同一范围内使用值时使用 !
运算符强制展开。
在大多数情况下,如果该值不是 nil,您可能希望使用该值,if let
构造再次提供了一种安全且方便的方法。
我是 swift 的新手,所以如果这个问题听起来很愚蠢,请原谅我。下面是可选绑定的示例。它是如何工作的,我明白了。但是为什么需要它,我无法理解。
var optionalName: String? = "John Appleseed"
var greeting = "Hello!"
if let name = optionalName {
greeting = "Hello, \(name)"
}
我们可以使用下面的代码来代替 "If let" 的新构造。它有什么害处?为什么我们要完全采用一个额外的临时变量?提前致谢。
var optionalName: String = "John Appleseed"
var greeting = "Hello!"
if optionalName != nil {
greeting = "Hello, \(optionalName)"
}
if let
构造允许您 "unwrap" 可选值以便可以使用该值(当它不是 nil
时)。
简单地测试是否 nil
不会改变您有一个可选的事实。
因此 if let
构造允许您一步测试和解包可选。这很方便,并为您提供了一种安全的方式来使用可选的。
只要您不希望以任何有意义的方式使用包装值(即,您只是在测试非零),仅测试非 nil
并没有什么坏处。或者您计划每次要在同一范围内使用值时使用 !
运算符强制展开。
在大多数情况下,如果该值不是 nil,您可能希望使用该值,if let
构造再次提供了一种安全且方便的方法。