为什么我就不能绕过的b
和c
初始化下面的代码:可选和默认值需要用默认初始值进行初始化
struct Token {
var a: Int
var b: Int = -1
var c: Int?
}
let t1 = Token(a: 1, b: 2, c: 0) // works of course
let t2 = Token(a: 1) // doesn't work :-(
我发现的唯一的方法是添加一个init在该struct
,唯一的强制性参数:
init(a: Int) { self.a = a }
但我发现这个语言的要求非常繁琐,太冗长。有没有办法实现初始化必填字段只有而不添加构造函数?
相关:https://github.com/apple/swift-evolution/blob/master/proposals/0018-flexible-memberwise-initialization.md(已被推迟)。 –