为什么只创建一个正则变量或常量而不是创建一个“隐式展开的可选”?如果您知道可以成功解包,那么为什么首先要创建一个可选的?例如,为什么这样:
let someString: String! = "this is the string"
比以下内容更有用:
let someString: String = "this is the string"
如果“可选参数指示允许常量或变量具有’无值’”,但“有时从程序的结构中可以看出,可选参数在首次设置该值后将始终具有一个值”,这是什么意思呢?首先使它成为可选项?如果您知道可选值总是会有一个值,那不是使它成为非可选值吗?
考虑一个对象的情况,该对象在构造和配置时可能具有nil属性,但是此后是不可变的且非nil(NSImage通常被用这种方式处理,尽管在这种情况下,有时仍然有用)。隐式解开的可选对象将清理其代码,并且安全损失相对较低(只要持有一个保证,它将是安全的)。
(编辑)不过要清楚:常规的可选几乎总是首选。