添加“计算属性”内容

This commit is contained in:
Shiny Zhu
2014-06-08 07:57:02 +08:00
parent 1a8f228e5f
commit 201147d72c

View File

@ -105,3 +105,36 @@ Swift编程语言中把这些理论统一用属性来实现。Swift中的属性
## 计算属性
除存储属性外,类、结构体和枚举可以定义*计算属性*计算属性不直接存储值而是提供一个getter来获取值一个可选的setter来间接设置值。
```
struct Point {
var x = 0.0, y = 0.0
}
struct Size {
var width = 0.0, height = 0.0
}
struct Rect {
var origin = Point()
var size = Size()
var center: Point {
get {
let centerX = origin.x + (size.width / 2)
let centerY = origin.y + (size.height / 2)
return Point(x: centerX, y: centerY)
}
set(newCenter) {
origin.x = newCenter.x - (size.width / 2)
origin.y = newCenter.y - (size.height / 2)
}
}
}
var square = Rect(origin: Point(x: 0.0, y: 0.0),
size: Size(width: 10.0, height: 10.0))
let initialSquareCenter = square.center
square.center = Point(x: 15.0, y: 15.0)
println("square.origin is now at (\(square.origin.x), \(square.origin.y))")
// prints "square.origin is now at (10.0, 10.0)”
```