swift 5.9 新增访问修饰符

683 阅读1分钟

近日,Apple 的 Swift 团队批准了 Swift 提案 SE-0386,其中包括添加一个名为 package 的新访问修饰符,被package修饰的类、结构体、枚举、协议、函数、变量等仅允许在同一包内被访问。

我们先来回顾一下现有的访问修饰符:

  • open,可以被模块内和模块外任何地方访问,可以 override 重写和继承。

  • public,和 open 相同,区别是其他模块中不可以被override和继承。

  • Internal,这是 Swift 中的默认访问级别,只允许在同一模块内被访问。

  • fileprivate,只允许在同一文件中被访问。

  • private,只允许在当前类中被访问。

按照现在的访问权限则依次为:open > public > internal > fileprivate > private

本次新增的 package 介于 publicinternal 之间,之后的权限排序为:open > public > package > internal > fileprivate > private

Swift 5.9 计划于 2023 年 9 月发布

参考资料

[1]

SE-0386: github.com/apple/swift…

本文同步自微信公众号 “iOS新知”,每天准时分享一个新知识,这里只是同步,想要获得更好的体验就来关注我吧!