微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

swift – var声明后这个花括号块做了什么?

我正在看这个 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,如果没有则设置它,然后返回该值.这是第一次访问对象时延迟加载对象的方法.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐