Swift3中的可选结构

时间:2016-12-22 17:35:27

标签: struct swift3 optional

我想声明一个存储可选结构的变量,如下所示:

struct my_struct{
    var x: Double
    var y: Double
}

var my_variable = my_struct?

我是对的,这个语法在Swift2中是正确的吗?不幸的是,它不再适用于Swift3。什么是"新"实现这个目标的方法?

2 个答案:

答案 0 :(得分:2)

语法在Swift 2中也不起作用。

首先,让我们使用Swift兼容名称

struct MyStruct { ... }

您有两种选择:

  • myVariable : MyStruct?声明一个没有值的可选结构(nil

  • myVariable : MyStruct? = MyStruct()声明一个可选的空结构。

注意:请考虑您必须在第二种形式中为结构的属性指定默认值,或使用成员初始化程序或编写自定义初始值设定项。

PS:不要使用选项作为 don-t-care alibi。 Swift鼓励您尽可能多地使用非可选类型。

答案 1 :(得分:1)

struct my_struct{
    var x: Double
    var y: Double
}

var my_variable:my_struct?

请注意,类型通常是大写的,并且在Swift中通过惯例进行驼峰式处理,例如

struct MyStruct {
    var x: Double
    var y: Double
}

var myVariable: MyStruct?