gpt4 book ai didi

swift - 协议(protocol)中的计算属性 getter 调用次数超过所需次数

转载 作者:行者123 更新时间:2023-11-30 12:05:48 25 4
gpt4 key购买 nike

我在协议(protocol)扩展中创建了一个私有(private)变量,并使用它来获取对象的实例。

即使我调用一次,getter 也会被调用两次。我准备了一个 Playground 来展示这一点。

下面是代码:

class LoggingService {
func sayWorld() {
print("world")
}
}

protocol LoggerType {
func sayWorld()
}

extension LoggerType {
private var loggerInstance: LoggingService {
print("init")
return LoggingService()
}

func sayWorld() {
self.loggerInstance.sayWorld()
}
}

class ViewMock: LoggerType {
init() {

}
}

let viewObj = ViewMock()
viewObj.sayWorld()

看看运行 Playground

enter image description here

需要对此行为进行一些解释。

最佳答案

正如 @Hamish 在评论中所解释的,在已编译的项目中,它按预期工作,即仅调用一次。

我仍然想知道为什么会在 Playground 发生这种情况。因此,如果有人有什么要分享的,我想听听。

关于swift - 协议(protocol)中的计算属性 getter 调用次数超过所需次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46694912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com