返回
Swift实用教程:存储属性、计算属性及属性观察器的妙用
IOS
2023-10-23 08:19:02
存储属性
存储属性用于存储值。它们可以是变量(可变)或常量(不可变)。
- 变量使用
var
声明,常量使用let
关键字声明。 - 变量可以重新赋值,常量不能重新赋值。
- 存储属性必须在初始化器中初始化。
例如:
class Person {
var name: String // 存储属性
let age: Int // 存储属性
init(name: String, age: Int) {
self.name = name
self.age = age
}
}
计算属性
计算属性用于从其他属性或常量计算值。它们不能存储值,因此不能声明为变量或常量。计算属性使用get
和set
关键字声明。
get
关键字用于计算属性的值。set
关键字用于设置计算属性的值。
例如:
class Person {
var name: String // 存储属性
let age: Int // 存储属性
var fullName: String { // 计算属性
get {
return "\(name) \(age)"
}
}
init(name: String, age: Int) {
self.name = name
self.age = age
}
}
let person = Person(name: "John", age: 30)
print(person.fullName) // 输出: "John 30"
属性观察器
属性观察器用于在属性值发生变化时执行自定义动作。属性观察器可以是willSet
、didSet
或dynamic
。
willSet
观察器在属性值将要被设置时执行。didSet
观察器在属性值已被设置后执行。dynamic
观察器在属性值发生变化时执行。
例如:
class Person {
var name: String {
willSet {
print("Name will be changed to \(newValue)")
}
didSet {
print("Name has been changed to \(name)")
}
}
init(name: String) {
self.name = name
}
}
let person = Person(name: "John")
person.name = "Mary" // 输出: "Name will be changed to Mary"
// 输出: "Name has been changed to Mary"
存储属性、计算属性及属性观察器的使用
存储属性、计算属性和属性观察器是Swift语言中强大的特性,它们可以使您的代码更加健壮、可维护和可重用。
- 存储属性用于存储值。
- 计算属性用于从其他属性或常量计算值。
- 属性观察器用于在属性值发生变化时执行自定义动作。
您可以根据您的需求组合使用这些特性来构建健壮、可维护和可重用的代码。