Swift 中的可选项的目的是什么?

4

我最近在学习Swift(3.1),但是我对可选项的目的/实际用途理解有问题。

我查阅了几个网站,它们都只讲如何使用可选项,而不是为什么或者何时使用它们(有点说了“为什么”,但是似乎并不适用于我)。我的引用在文末。

我知道它要么是nil,要么是一个值,以及你需要用来解包它的可能值,以及如何创建自动解包的可选项。

我的主要问题就是,可选项的实际用途是什么?苹果的Swift手册说,可选项是Swift大多数强大功能的核心,因此我觉得这是一个非常值得完全理解的概念。我完全理解如何编写它们,只是无法理解为什么或何时使用它们。

引用:

https://www.tutorialspoint.com/swift/swift_optionals.htm

http://blog.teamtreehouse.com/understanding-optionals-swift

谢谢您的时间。


我通常使用 optional 的一种典型方式是在 init 时,类不知道变量的值。并且该值在对象的生命周期内的任何时间分配。 - Shamas S
1个回答

3
据我所知: Swift是一种安全的边界检查语言,因此它使用变量检查来实现,检查它们是否为nil或已分配值。
当您不确定在整个程序中特定变量是否有值时,可以使用可选项。
因此,如果您定义了一个文本字段并将其文本分配给变量。也许用户只是保持空白,您将该文本字段的数据绑定到变量上。 在运行时,它将为空,为避免崩溃,您可以定义一个可选项。
在程序中访问可选值时,您必须确保变量存在,使用“if let optional”或明确取消包装可选项。明确取消包装可选项是不好的做法,只有在确信该可选变量中有值时才应该这样做。
Swift无处不在地使用可选项。
披露:我还是Swift的新手,这将是第一个答案。也许我的回答没有达到Stack Overflow的标准。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接