【发布时间】:2015-08-19 11:31:05
【问题描述】:
在斯威夫特中:
1) 如果您为类中的所有存储属性提供默认值,那么您将继承默认初始值设定项,即 - init()。
-- 和--
2) 任何可选类型的属性默认值为 nil,即 - var shouldBeNill: String? //should initially be nill
-- 因此--
我希望这段代码可以工作:
class Product {
let name: String?
}
let product = Product()
但是当我将它作为游乐场输入时,我收到错误:“类 Product 没有初始化程序”。
为什么 Product 不继承默认初始化器 init()?我知道我可以通过显式设置let name: String? = nil 来完成这项工作,但我不确定为什么我必须这样做。这是 Swift 方面的错误,还是我不太明白的地方?
【问题讨论】:
标签: swift initialization constants optional swift-playground