gpt4 book ai didi

swift - 带下划线的变量声明

转载 作者:搜寻专家 更新时间:2023-10-31 22:05:07 25 4
gpt4 key购买 nike

我在 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
}
}

非常感谢。

最佳答案

第一个示例本质上是创建公开可读但私有(private)可写的属性。

第二组代码做的事情与第一组不同。

编写这段代码的正确方法是:

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
}

这使得外部用户可以读取属性,但只能由类设置。这就是第一组代码实现的内容,但以更加冗长和不必要的方式实现。

下划线的使用只是在创建私有(private)实例变量时从 Objective-C 继承的命名约定。

就个人而言,我会避免使用第一组代码的视频和教程。

关于swift - 带下划线的变量声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45107443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com