【发布时间】:2016-03-14 21:51:49
【问题描述】:
例如,我有这样的类,而不是创建我将在 init 方法中分配的字段,我只想隐式地解包选项。
class foo {
willBeSomeBool: Bool!
willBeSomeString: String!
}
我理解这样做的原因是,当我声明它们时,它们的初始值为nil,因此我不需要init,因为所有类的字段都有初始值。我需要做的就是确保在尝试访问它们之前为它们分配了一些东西,否则我会得到一个致命的错误。
假设我们已经为字段分配了值,现在我们在某种方法中,我要问的是:为什么我们需要在条件中使用 bool 时强制解包它? 我可以访问其他隐式展开的选项,甚至是布尔值,而无需在条件之外这样做。
func bar() {
if willBeSomeBool! {
...
}
}
func buzz() {
print(willBeSomeString)
}
对此我最好的猜测是因为我们仍然可以在隐式展开变量上检查 nil,因此在条件上下文中它被视为只是一个普通的可选变量,但就像我说的那样,这是我最好的 猜猜,也许我还漏掉了什么?
【问题讨论】:
标签: swift