swift存储属性和计算属性


 
 

`在Swift中,你可以使用计算属性(Computed Properties)和存储属性(Stored Properties)来实现各种类型的属性。这两种属性各有其特点和用途。

存储属性(Stored Properties)

存储属性是存储在实例的内存中的属性,它们有明确的类型,并且在实例的生命周期内保持其值。存储属性可以是变量(var)或常量(let)。

示例:

 
 
class Car {
var speed: Int = 0 // 存储属性
}

计算属性(Computed Properties)

计算属性不直接存储值,而是提供了一种获取(get)和设置(set,可选)值的机制。计算属性通常用于那些值依赖于其他属性或外部状态的情况。

示例:

 
 
class Car {
var speed: Int = 0
var description: String {
return "Car speed is \(speed) mph" // 计算属性
}
}

计算属性的完整语法:

计算属性可以用getset块来提供自定义的getter和setter方法。

示例:

 
 
class Car {
var speed: Int = 0 {
willSet(newSpeed) {
print("Speed is about to change to \(newSpeed)")
}
didSet {
print("Speed changed to \(speed)")
}
}
 
var description: String {
get {
return "Car speed is \(speed) mph" // 获取计算属性的值
}
set(newDescription) { // 设置计算属性的值,这里newDescription是setter参数的名称,可以自定义
let words = newDescription.components(separatedBy: " ") // 分割字符串获取速度值
speed = Int(words.last ?? "0") ?? 0 // 将最后一个单词转换为整数作为速度值,如果转换失败则默认为0
}
}
}

在这个例子中,description是一个计算属性,它允许你获取和设置一个描述字符串,同时通过这个字符串来间接设置speed属性的值。willSetdidSet是观察器,用于在speed属性的值改变前后执行代码。

通过结合使用存储属性和计算属性,你可以灵活地控制实例的行为和状态。

posted on 2025-04-24 13:41  漫思  阅读(53)  评论(0)    收藏  举报

导航