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
为什么我们不需要 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