Swift:为什么不能让懒惰的,计算的属性和属性观察器

问题描述 投票:0回答:1

我一直在研究为什么懒惰的,计算的属性和属性观察器不能(让)保持不变,例如,我知道直到被访问后才分配懒惰,但是为什么不能(让它)保持懒散,这意味着在被访问并分配给我们分配的值之前,lazy会保存nil值或其他任何值吗?请为计算属性和属性观察器解释相同的内容。

谢谢。

swift lazy-evaluation let
1个回答
0
投票

Lazy properties:您必须始终将lazy属性声明为变量(使用var关键字),因为直到实例初始化完成后才可能检索其初始值。常量属性在初始化完成之前必须始终具有一个值,因此不能声明为惰性。

计算属性:而计算属性则计算(而不是存储)一个值。相反,它们提供了一个getter和一个可选的setter,以间接检索和设置其他属性和值。

属性观察者:属性观察者将监视属性值的变化,如果定义为let,则如何监视变化,因为let是一种常量,在初始化后便无法更改。

© www.soinside.com 2019 - 2024. All rights reserved.