我在Youtube的一些视频中看过这个。
class Student {
private var _name: String!
private var _studentID: Int!
var name: String {
return _name
}
var studentID:Int {
return _studentID
}
init(name: String, studentID: Int) {
self._name = name
self._studentID = studentID
}
}
他们这样做的原因(添加_name
和_studentID
)而不是:
class Student {
private var name: String!
private var studentID: Int!
init(name: String, studentID: Int) {
self.name = name
self.studentID = studentID
}
}
非常感谢。
答案 0 :(得分:6)
第一个示例实质上是创建公开可读但可私密写入的属性。
第二组代码与第一组代码的作用不同。
编写此代码的正确方法是:
private (set) var name: String // no need for the !
private (set) var studentID: Int // no need for the !
init(name: String, studentID: Int) {
self.name = name
self.studentID = studentID
}
这使得外部用户可以读取属性,但只能由类设置。这是第一组代码实现的,但是更加冗长和不必要的方式。
使用下划线只是在创建私有实例变量时从Objective-C继承的命名约定。
就个人而言,我会避免使用第一组代码的视频和教程。