是否可以在Swift中为结构或类中的成员使用选项?

时间:2016-01-03 18:26:15

标签: swift

我很难在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 的成员?如果是这样的话,那么看起来似乎是选项的一个看似优势 - 它们可能包含结构化对象中可能存在或不存在的数据类型(例如名称构造中的中间名) - 会丢失。

在我对选项的理解中,我觉得我错过了一些基本的东西,我提前为我的天真道歉。

1 个答案:

答案 0 :(得分:2)

由于 echo 123hello! | awk '{while(a=substr($0,++b,1))printf b-1?FS a:a}' 的所有成员都有初始值 (包括struct - 作为可选项 - 是 隐式初始化为var middleName: String?),您可以创建一个变量 只需输入

即可
nil