You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift代码中info属性类型解析及无get块计算属性疑问

解析代码中info属性的类型

先看这段代码里的info属性:

var info: () -> String {
    {
        return "\(self.name) is \(self.colour) in colour"
    }
}

它的类型是() -> String,也就是无参数、返回值为String类型的闭包。这个属性属于计算属性,每次访问info时,会返回一个闭包;调用fruit.info()则是执行这个闭包,最终得到拼接了水果名称和颜色的字符串。

Swift计算属性能否不编写get块?

完全可以。在Swift中,只读计算属性默认不需要显式写出get关键字,直接把计算逻辑写在大括号里即可。上面的info就是省略get的写法,等价于以下带get的完整实现:

var info: () -> String {
    get {
        {
            return "\(self.name) is \(self.colour) in colour"
        }
    }
}

只有当计算属性需要同时实现可读可写(即包含get和set逻辑)时,才必须显式标注get和set关键字。

内容的提问来源于stack exchange,提问作者Akhil K Markose

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 15:10:28