爲什麼我就不能繞過的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(已被推遲)。 –