Swift变量语法

时间:2017-10-04 13:44:30

标签: swift

很抱歉提出一个愚蠢的问题。但我对此感到困惑:

map()

该代码的含义是否相同:

var debugMessage: String {
    return "Level 1"
}

或者是关闭?

2 个答案:

答案 0 :(得分:1)

第一个:

var debugMessage: String {
    return "Level 1"
}

的简短形式
var debugMessage: String {
    get { return "Level 1" }
}

这是一个只带有getter的计算属性声明。

第二个只是一个带初始化的简单存储属性声明。

如您所见,一个是计算属性,另一个是存储属性。因此,它们的差异与计算属性和存储属性之间的差异大致相同。

以下是其中一些。

  • 无法设置仅包含getter的计算属性。可以设置使用var声明的存储属性
  • 计算属性可以放在扩展名中。存储的属性不能。
  • 计算属性实际上并不占用内存("级别1和#34;不存储在内存中),直到您访问它为止。初始化对象时,存储的属性将其值放入内存中。

答案 1 :(得分:0)

您提供的第一个示例是计算变量。如果它始终返回Level 1,那么这两个示例会产生相同的结果

但是,一般来说,第二种方法只为变量提供i nitial值,而计算变量可以更改它的返回值。