【发布时间】:2019-10-16 05:44:51
【问题描述】:
根据 swift 文档,如果您将类型的访问级别定义为私有或文件私有,则其成员的默认访问级别也将是私有或文件私有
我创建了一个示例代码来使用 Swift 5.0 分析上述语句
private class Profile {
var name: String?
//By default name should have private access level implicitly
}
private class Person {
private var name: String?
//name should have private access level explicitly
}
func gobalTestFunction() {
let profile = Profile()
let profileName = profile.name
//This does not give any error and name is accessible here
let person = Person()
let personName = person.name
//This gives error 'name' is inaccessible due to 'private' protection level
}
预期结果:
创建 profileName 时,应该会出现与创建 personName 时发生的错误类似的错误
'name' is inaccessible due to 'private' protection level
实际结果:
创建 personName 时发生错误,但创建 profileName 时未遇到错误。
【问题讨论】:
-
stackoverflow.com/a/43504968 的可能重复项 - 顶级
private类实际上是fileprivate。
标签: swift