扩展中的延迟加载属性 (Swift)

2024-01-03

我知道 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(使用前将#替换为@)

扩展中的延迟加载属性 (Swift) 的相关文章

随机推荐