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到底是什么吗?
发布于 2015-12-12 18:13:39
1.财产观察员
willSet中的代码。didSet就会被调用。2.议定书
如果协议对您有帮助,您可以将其看作是类似于接口的协议,但您可能希望使用观看WWDC视频“面向协议的编程”。来查看协议在实践中是如何使用的。
https://stackoverflow.com/questions/34242861
复制相似问题