
近日,Apple 的 Swift 团队批准了 Swift 提案 SE-0386,其中包括添加一个名为 package 的新访问修饰符,被package修饰的类、结构体、枚举、协议、函数、变量等仅允许在同一包内被访问。
我们先来回顾一下现有的访问修饰符:
-
open,可以被模块内和模块外任何地方访问,可以
override重写和继承。 -
public,和 open 相同,区别是其他模块中不可以被
override和继承。 -
Internal,这是 Swift 中的默认访问级别,只允许在同一模块内被访问。
-
fileprivate,只允许在同一文件中被访问。
-
private,只允许在当前类中被访问。
按照现在的访问权限则依次为:open > public > internal > fileprivate > private
本次新增的 package 介于 public 和 internal 之间,之后的权限排序为:open > public > package > internal > fileprivate > private。
Swift 5.9 计划于 2023 年 9 月发布
参考资料
[1]
SE-0386: github.com/apple/swift…
本文同步自微信公众号 “iOS新知”,每天准时分享一个新知识,这里只是同步,想要获得更好的体验就来关注我吧!