Swift Getter computed属性与返回值的变量

Swift Getter computed属性与返回值的变量,swift,getter,computed-values,Swift,Getter,Computed Values,getter computed属性和返回值的变量之间有区别吗?例如,以下两个变量之间是否存在差异 var NUMBER_OF_ELEMENTS1: Int { return sampleArray.count } var NUMBER_OF_ELEMENTS2: Int { get { return sampleArray.count } } 它们是相同的,因为它们都定义了只读计算属性。但是前者更可取,因为它比后者更短,可读性更高。具有getter和s

getter computed属性和返回值的变量之间有区别吗?例如,以下两个变量之间是否存在差异

var NUMBER_OF_ELEMENTS1: Int {
    return sampleArray.count
}

var NUMBER_OF_ELEMENTS2: Int {
    get {
        return sampleArray.count
    }
}

它们是相同的,因为它们都定义了只读计算属性。但是前者更可取,因为它比后者更短,可读性更高。

具有getter和setter的计算机属性具有以下形式:

var computedProperty: Int {
    get {
        return something // Implementation can be something more complicated than this
    }
    set {
        something = newValue // Implementation can be something more complicated than this
    }
}
在某些情况下,不需要setter,因此computed属性声明为:

var computedProperty: Int {
    get {
        return something // Implementation can be something more complicated than this
    }
}
请注意,计算属性必须始终有一个getter,因此不可能仅用setter声明一个getter

由于计算属性通常只有一个getter,Swift让我们通过省略
get
块来简化它们的实现,从而使代码更易于编写和读取:

var computedProperty: Int {
    return something // Implementation can be something more complicated than this
}

从语义上讲,两个版本之间没有区别,因此无论使用哪种版本,结果都是一样的。

为什么标题与正文不同?对不起,我的错。更新了它。