我仍然有点困惑范围访问,我觉得变量只能在其范围内进行访问,这就是我在一般的方式私人值仍然可以从外部
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的操场上,一切都被输入到同一平面“终端”,因此所有的人都可能具有相同的范围,如果我把车类转换成不同的文件夹,carOfTim.color = "Green"
不得工作了。
如果我错了,请纠正我。非常感谢您的时间和帮助。
非常感谢您的回答和参考 – SLN