Swift class 中的可选属性不需要初始值设定项

No need for initializer for optional properties inside Swift class

为什么我们不需要 ViewController.swift 文件中任何 class 中可选属性的初始值设定项?

class SpareParts {
    var wheels: Int8?
    var engine: String?
}

但是如果 class 的属性是非可选的,我们立即需要一个 init() 方法:

We don't need initializer for optional properties

因为它的默认值是 nil ,所以重新分级 non-optional 它不可能,所以你必须用 init 分配一个值或者得到一个 compile-time 错误你目前拥有什么

可选属性类型:

如果你的自定义类型有一个存储的 属性 逻辑上允许有“无值”——可能是因为它的值不能在初始化期间设置,或者因为它被允许有“无值”在稍后一点——用可选类型声明 属性。可选类型的属性会自动初始化为 nil 值,表示 属性 在初始化期间故意设置为“尚无值”。

例如:

class SurveyQuestion {
    var text: String?
    init(text: String) {
        self.text = text
    }
    func ask() {
        print(text)
    }
}

let cheeseQuestion = SurveyQuestion(text: "Do you like cheese?")
cheeseQuestion.ask()
// Prints "Do you like cheese?"
 let cheeseQuestion1 = SurveyQuestion()
cheeseQuestion.ask() 
// Prints nil