【发布时间】:2014-06-27 16:40:00
【问题描述】:
我正在阅读有关如何在 Swift 中编程的内容,但可选项的概念让我有些烦恼。并不是说为什么要使用可选项,这是有道理的,但更重要的是在什么情况下您不想使用可选项。据我了解,可选项只允许将对象设置为 nil,那么您为什么不想要该功能呢?将对象设置为零不是您告诉 ARC 释放对象的方式吗? Foundation 和 Cocoa 中的大多数函数不都返回可选项吗?因此,除了每次都必须输入一个额外的字符来引用一个对象之外,还有什么好的理由不使用可选项来代替常规类型?
【问题讨论】:
-
“你为什么不想要那个功能?” Listen to Tony Hoare。您可能还会了解 CS 的历史,这比您想象的更重要。
-
重点不一定是要避免在代码中anywhere 使用 nil 值,而是要更明确地说明您知道值 不能在代码中的确切位置> 为零。
-
“将对象设置为 nil 是不是就像您告诉 ARC 释放对象的方式一样?” 这是释放对象的一种方式,但远不是唯一的方式。而且通常不需要。