在创建类时,创建自定义类的这两个实现在安全性方面有什么区别。它们的工作方式与我所使用的完全相同,但听说使用私有变量是创建类的正确方法。
class Person {
var name:String
var age:Int
init(name: String, age: Int){
self.name = name
self.age = age
}
}和
class Person {
private var _name: String
private var _age: Int
var name: String {
set {
self._name = newValue
} get {
return _name
}
}
var age: Int {
set {
self._age = newValue
} get {
return _age
}
}
init(name: String, age: Int){
self._name = name
self._age = age
}
}发布于 2020-02-28 06:24:54
private绝对是推荐使用的,但只在您想要为您的属性提供这种隐私的情况下使用。
您的第二个代码并不能保证任何类型的隐私。这只是不必要地增加了更多的代码。
可能存在这样一种情况:您希望将写入访问保持为对类型(class/struct)的私有访问,并允许在该类型之外进行读访问。为此,您可以在属性中使用private(set)访问修饰符,即
class Person {
private(set) var name: String
private(set) var age: Int
init(name: String, age: Int){
self.name = name
self.age = age
}
}https://stackoverflow.com/questions/60445040
复制相似问题