隐式展开的可选项和非可选项之间的区别

Posted

技术标签:

【中文标题】隐式展开的可选项和非可选项之间的区别【英文标题】:difference between implicitly unwrapped optionals and non-optionals 【发布时间】:2014-11-27 11:33:36 【问题描述】:

如果 Apple 在 Swift Programming 中所说的隐式解包选项应该总是有一个值,那么为什么不使用非选项呢? 我知道知道 non-optionals 不能分配给 nil 但还有其他区别吗?

【问题讨论】:

***.com/questions/24006975/…的可能重复 【参考方案1】:

还有其他区别吗?

隐式展开的可选项可以与nil 进行比较。

var a:String!
if a == nil 
    // a is nil

【讨论】:

【参考方案2】:

最简单的答案是可选变量可能根本无法获取值,在 ios 开发中,通常需要这种特殊行为。因此,Swift 没有在 Objective-C 中创建指针(成本很高),而是引入了可选变量。要了解隐式和显式选项,请参阅 this 链接。

【讨论】:

以上是关于隐式展开的可选项和非可选项之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Objective-C API 会返回隐式展开的可选项?

在 Apple Swift 中,在啥情况下我不想要一个隐式展开的可选项?

什么是解包变量?

访问无价值的隐式解包可选?

在 Xcode 8 beta 4 中,隐式展开的选项数组永远迭代

Swift之深入解析如何处理非可选的可选项类型