以下是否有区别:
懒变量:
lazy var profileImageIsLoaded : Bool = { return (profileImageView.image != nil) && (profileImageProgressView.alpha == 0.0) }()
功能:
func profileImageIsLoaded() -> Bool { return (profileImageView.image != nil) && (profileImageProgressView.alpha == 0.0) }
计算物业:
var profileImageIsLoaded : Bool { return (profileImageView.image != nil) && (profileImageProgressView.alpha == 0.0) }
什么方法最好用?
我会多次调用函数/变量,所以我的问题也是懒惰变量是否“更新”或者它们是否只获得一次值.
> lazy vars实际上是存储属性,因此您不能将其放在扩展中或不允许存储属性的任何位置. >每次引用该属性时都会运行计算属性的getter.这可能很重要,特别是如果吸气剂耗时或对代码的其他部分有副作用. >懒惰变量的getter仅在首次引用属性时运行,并且永远不会再次运行. >懒惰的变量是变量.你可以改变它们. >计算属性可以选择具有setter,因此有时它们是只读的. >使用这样的函数非常类似于只读计算属性.您只需在获取其值时添加().
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。