gpt4 book ai didi

swift - swift 5.0 中私有(private)类属性的默认访问修饰符是什么?

转载 作者:行者123 更新时间:2023-12-01 03:05:16 25 4
gpt4 key购买 nike

根据 swift 文档,如果您将类型的访问级别定义为私有(private)或文件私有(private),则其成员的默认访问级别也将是私有(private)或文件私有(private)

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

最佳答案

  • 使类在目标/框架内而不是外部可访问
    也就是说,您可以使用默认的内部访问修饰符。
  • 如果你想让类在文件中可访问,你可以
    使用 fileprivate 访问修饰符。

    简而言之,在顶层将类设为私有(private)是没有意义的。它实际上是文件私有(private)的。

    感谢@Martin R 的有用评论。
  • 关于swift - swift 5.0 中私有(private)类属性的默认访问修饰符是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58406460/

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