Swift 属性
在 Swift 编程语言中,属性用于在类、结构体或枚举中存储值。属性可以关联到类型的实例,也可以直接关联到类型本身。Swift 的属性分为两大类:存储属性(Stored Properties)和计算属性(Computed Properties)。此外,还有属性观察器和类型属性等概念。以下是这些属性的简要介绍:
存储属性(Stored Properties):
- 存储属性是直接存储在类或结构体实例中的常量或变量。
- 可以是变量存储属性(用
var
声明),也可以是常量存储属性(用let
声明)。 - 只能在结构体和类中使用。
- 示例:
struct Person { var name: String let birthYear: Int }
计算属性(Computed Properties):
- 计算属性不直接存储值,而是提供 getter 和可选的 setter 来间接访问和修改其他属性或值。
- 计算属性可以用于类、结构体和枚举。
- 示例:
struct Rectangle { var width: Double var height: Double var area: Double { return width * height } }
属性观察器(Property Observers):
- 属性观察器会监控属性值的变化,并在属性值被设置时触发事件。
- 可以添加在存储属性上(除了常量存储属性)和覆盖后的计算属性上。
- 属性观察器有两种:
willSet
和didSet
。 - 示例:
var progress: Int = 0 { willSet(newProgress) { print("New progress is about to be set to \(newProgress)") } didSet { print("Progress changed from \(oldValue) to \(progress)") } }
类型属性(Type Properties):
- 类型属性是直接与类型本身相关联的属性,而不是某个类型实例。
- 使用
static
关键字来声明类型属性,类类型的类型属性也可以使用class
关键字。 - 类型属性可以是存储属性或计算属性。
- 示例:
struct SomeStructure { static var storedTypeProperty = "Some value." static var computedTypeProperty: Int { return 1 } }
通过使用这些属性特性,你可以在 Swift 中高效地管理和操作数据结构的各种特征和行为。