【发布时间】:2016-05-30 19:23:51
【问题描述】:
我对范围还是有点迷茫,我认为变量只能在其范围内访问,这就是我对一般方式的理解
class Car {
let manufacturer: String
private(set) var color: String
init() {
manufacturer = "Ford"
color = "Black"
}
func changeColor(color: String){
self.color = color
}
}
var carOfTim = Car()
carOfTim.changeColor("Red") // only "changeColor" fun can update the color
print(carOfTim.color)
//why I can do this?
carOfTim.color = "Green"
print(carOfTim.color) // it prints the "Green"!
问题:我认为私有变量color只能通过changeColor函数访问,因为changeColor与color的作用域相同。但是carOfTim.color = "Green"还是可以更新颜色变量,为什么?
猜测:由于我使用的是 Xcode 游乐场,所有内容都输入到同一个普通的“终端”中,因此如果我将 Car 类放入不同的文件夹,它们可能都具有相同的范围, carOfTim.color = "Green" 可能不再工作了。
如果我错了,请纠正我。非常感谢您的时间和帮助。
【问题讨论】: