【发布时间】:2021-06-22 07:01:20
【问题描述】:
我在结构中有一个惰性属性,每次访问它时,它都会改变结构。
var numbers = [1,2,3]
struct MyStruct {
lazy var items = numbers
}
class MyClass {
var myStructPropery: MyStruct = MyStruct() {
didSet {
print(myStructPropery)
}
}
}
var myClass = MyClass()
myClass.myStructPropery.items
myClass.myStructPropery.items
myClass.myStructPropery.items
结果:
每次都会调用Print(didSet)。
理想的行为应该是仅第一次突变(因为这就是惰性变量的行为方式)。这是 Swift 中的错误还是我做错了什么?
【问题讨论】:
-
请将代码发布为 text。不要发布代码图片。
标签: swift xcode struct lazy-initialization