我有这个带getter和setter的swift结构代码。
newValue的值是如何进入这个setter的?我不知道它是怎么定义的。

struct Program {
var allResults : [String] = []
var items: Int {
    get {
        return allResults.count
    }
    set {
        let result = String(newValue * 100) // what's that newValue, how did it get there?
        allResults.append(result)
    }
}

最佳答案

这被称为速记员声明。
引用自Swift 3书:
如果计算属性的setter没有为新的
要设置的值,将使用newValue的默认名称。
如果您希望有一个更好的可读格式,您可以使用:

...
set (newItems) { //add your own variable named as you like
    let result = String(newItems * 100)
    allResults.append(result)
}
...

08-16 01:51