【发布时间】:2016-03-22 07:12:33
【问题描述】:
这是 apple 提供的 pint 结构 setter 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)
}
}
}
【问题讨论】:
-
你想能得到中心但不直接设置吗?是这样吗?
-
是的,你是对的
-
好的,我没有删除我的答案,认为它可能适合你想要的。使用
private (set)的另一个答案也可能有效,但正如所表明的那样,它的工作方式与您想象的不同。由于您不希望能够设置中心属性,因此最好的方法是使用中心的计算属性。希望这会有所帮助
标签: swift