【发布时间】:2014-07-26 18:09:22
【问题描述】:
这是来自文档的引用:
如果您的自定义类型有一个逻辑上允许“无值”的存储属性——可能是因为它的值不能在初始化期间设置,或者因为它允许在稍后的某个时间点有“无值”——声明具有可选类型的属性。可选类型的属性会自动使用 nil 值进行初始化,这表明该属性在初始化期间故意设置为“还没有值”。
如果我用一个类来做这件事,效果很好:
class MyClass {
var someProperty: String?
}
var myClass = MyClass()
myClass.someProperty // Shows nil
但是,如果我使用结构类型执行此操作,则会在初始化时出错:
struct MyStruct {
var someProperty: String?
}
// ERROR
var myStruct = MyStruct()
错误:
参数“someProperty”缺少参数
我可以通过像这样明确地声明它为 nil 来解决这个问题:
struct MyStruct {
var someProperty: String? = nil
}
// Valid
var myStruct = MyStruct()
问题
鉴于文档,我希望任何设置为可选项的类型的属性都默认为 nil。我必须在结构上显式声明它吗?
为什么?
没有充分的理由,就像你们中的许多人一样,我只是在尝试。
【问题讨论】:
标签: swift