我正在查看这段 Swift 代码:
var modelController: ModelController {
if _modelController == nil {
_modelController = ModelController()
}
return _modelController!
}
var _modelController: ModelController? = nil
我感兴趣的是第一行:它声明了一个名为 modelController
的变量,类型为 ModelController
,后面是一些用大括号括起来的代码,我认为它叫做Swift 中的闭包。
这个闭包有什么作用?什么时候执行?这个图案叫什么?我正在使用 Swift 3。
最佳答案
这叫做 computed property .您在此处看到的类型是只读计算属性。
每次您访问该属性(在本例中为 self.modelController
)时,闭包都会运行,返回将用于该属性的值。
在给出的示例中,代码检查是否设置了另一个变量 _modelController
,如果没有设置,则返回该值。这是一种在第一次访问对象时延迟加载对象的方式。
关于swift - 这个花括号 block 在 var 声明之后做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39661916/