我知道 swift 不允许在扩展中声明存储的属性。出于同样的原因,延迟加载的属性也是被禁止的。我知道计算属性是一种选择,但我的任务应该只执行一次。
是否有任何黑客/替代/被忽视的方法来模仿扩展中的惰性变量?
Thanks!
如果你不需要参考self
你可以使用static var
:
extension String {
static var count = 0
static var laughingOutLoud : String = {
count++
return "LOL: \(count)"
}()
}
String.laughingOutLoud // outputs "LOL: 1"
String.laughingOutLoud // outputs "LOL: 1"
String.laughingOutLoud // outputs "LOL: 1"
(你不需要count
在您的实施中;这只是为了表明它只执行一次。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)