Fra*_*kie 3 variables declaration swift
我在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
}
}
Run Code Online (Sandbox Code Playgroud)
他们为什么这样做(添加_name和_studentID)而不是:
class Student {
private var name: String!
private var studentID: Int!
init(name: String, studentID: Int) {
self.name = name
self.studentID = studentID
}
}
Run Code Online (Sandbox Code Playgroud)
非常感谢你.
第一个示例实质上是创建可公开读取但可私密写入的属性.
第二组代码与第一组代码的作用不同.
编写此代码的正确方法是:
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
}
Run Code Online (Sandbox Code Playgroud)
这使得外部用户可以读取属性,但只能由类设置.这是第一组代码实现的,但是更加冗长和不必要的方式.
下划线的使用只是在创建私有实例变量时从Objective-C继承的命名约定.
就个人而言,我会避免使用第一组代码的视频和教程.