Swift 5.0中私有类属性的默认访问修饰符是什么?

问题描述 投票:1回答:1

根据快速文档,如果将类型的访问级别定义为私有或文件私有,则其成员的默认访问级别也将为私有或文件私有] >>

我创建了一个示例代码来使用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时未遇到错误。

根据迅速的文档,如果您将类型的访问级别定义为私有或文件私有,则其成员的默认访问级别也将是私有或文件私有,而我已经为...创建了示例代码...]

swift
1个回答
0
投票
  • Profile

    是私有课程,因此您可以访问其成员,因此可以在课程之外访问它。
© www.soinside.com 2019 - 2024. All rights reserved.