class TriangleAndSquare {
var triangle: EquilateralTriangle {
willSet {
square.sideLength = newValue.sideLength
}
}
var square: Square {
willSet {
triangle.sideLength = newValue.sideLength
}
}
init(size: Double, name: String) {
square = Square(sideLength: size, name: name)
triangle = EquilateralTriangle(sideLength: size, name: name)
}
}
var triangleAndSquare = TriangleAndSquare(size: 10, name: "another test shape")
print(triangleAndSquare.square.sideLength)
print(triangleAndSquare.triangle.sideLength)
triangleAndSquare.square = Square(sideLength: 50, name: "larger square")
print(triangleAndSquare.triangle.sideLength)
快速的协议就像Java中的接口?谁能解释我上面示例中的willSet和didSet到底做什么?
willSet
属性值即将更改时,将调用in的代码。didSet
,仅在更改属性值时被调用。如果可以帮助您,您可以认为协议就像接口一样,但是您可能想观看WWDC视频“面向协议的编程”,以了解协议在实践中是如何使用的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句