我想声明一个存储可选结构的变量,如下所示:
struct my_struct{
var x: Double
var y: Double
}
var my_variable = my_struct?
我是对的,这个语法在Swift2中是正确的吗?不幸的是,它不再适用于Swift3。什么是"新"实现这个目标的方法?
答案 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?