我知道这个问题就在这里,但它只是部分回答了我的问题,我无法对答案发表评论,所以我不得不在这里发帖。
可选绑定和仅使用 有什么区别?我的理解是当你使用 ? 解包一个变量,如果它包含一个 nil 值,那么使用它的代码不会运行。(如果不是这种情况,请纠正我。)
我知道这个问题就在这里,但它只是部分回答了我的问题,我无法对答案发表评论,所以我不得不在这里发帖。
可选绑定和仅使用 有什么区别?我的理解是当你使用 ? 解包一个变量,如果它包含一个 nil 值,那么使用它的代码不会运行。(如果不是这种情况,请纠正我。)
如果您有一个只希望在变量不是时运行的代码块,则使用可选绑定( ) 。if let
nil
仅在访问可选变量的属性/方法时才使用可选链接(the )。?
但是在某些情况下,可选链接是不可能的(即,您没有访问可选变量的属性/方法,而是将该变量用于其他目的)。例如
// let's assume `data` is a `NSData?` optional
if let imageData = data {
let image = UIImage(data: imageData)
// now do something with `image`
}
我们这样做是因为在这种情况下,我们不能使用可选链接,并且使用强制解包(例如)会在 is时let image = UIImage(data: data!)
崩溃。data
nil