我很难在Swift 2.1文档中协调我对选项的不完全理解和这一点:
类和结构必须将其所有存储属性设置为 适当的初始值,当该类的实例或 结构已创建。存储的属性不能留在 不确定的状态。
我希望能够做到这样的事情:
struct Name {
var firstName = "Flintstone First"
var middleName: String?
var lastName = "Flintstone"
}
var wilmaHusband: Name
wilmaHusband.firstName = "Fred"
其中 middleName 可能是 nil 。但是,根据Swift文档的那部分可以理解,我遇到错误 Struct wilmaHusband必须在存储成员之前完全初始化...
我正在尝试做什么 - 在Swift中不可能在结构(或类)中创建一个可能 nil 的成员?如果是这样的话,那么看起来似乎是选项的一个看似优势 - 它们可能包含结构化对象中可能存在或不存在的数据类型(例如名称构造中的中间名) - 会丢失。
在我对选项的理解中,我觉得我错过了一些基本的东西,我提前为我的天真道歉。
答案 0 :(得分:2)
由于 echo 123hello! | awk '{while(a=substr($0,++b,1))printf b-1?FS a:a}'
的所有成员都有初始值
(包括struct
- 作为可选项 - 是
隐式初始化为var middleName: String?
),您可以创建一个变量
只需输入
nil