为啥使用可选绑定?
Posted
技术标签:
【中文标题】为啥使用可选绑定?【英文标题】:Why use optional binding?为什么使用可选绑定? 【发布时间】:2015-11-17 23:54:40 【问题描述】:我知道这个问题是here,但它只是部分回答了我的问题,我无法评论答案,所以我不得不在这里发帖。
可选绑定和简单地使用有什么区别?。我的理解是当你使用 ?解包一个变量,如果它包含一个 nil 值,那么使用它的代码不会运行。 (如果不是这样,请纠正我。)
【问题讨论】:
【参考方案1】:如果您有一个代码块,并且您只想在变量不是nil
时运行,您可以使用optional binding (if let
)。
您仅在访问可选变量的属性/方法时使用optional chaining(?
)。
但在某些情况下,可选链接是不可能的(即,您没有访问可选变量的属性/方法,而是将该变量用于其他目的)。例如
// let's assume `data` is a `NSData?` optional
if let imageData = data
let image = UIImage(data: imageData)
// now do something with `image`
我们这样做是因为在这种情况下,我们不能使用可选链接,并且如果 data
是 nil
,使用强制展开(例如 let image = UIImage(data: data!)
)会崩溃。
【讨论】:
以上是关于为啥使用可选绑定?的主要内容,如果未能解决你的问题,请参考以下文章
无法在可选绑定中使用可选 int "possibleNumber"
为啥必须在可选链接之前使用点运算符 - 在函数之前? [复制]