前言
SE-0409 提案引入了一项新功能,即允许使用 Swift 的任何可用访问级别标记导入声明,以限制导入的符号可以在哪些类型或接口中使用。由于这些变化,现在可以将依赖项标记为对当前源文件(private
或 fileprivate
)、模块(internal
)、包(package
)或所有客户端(public
)可见。
此提案引入了两个功能标志后面的更改,这两个功能标志将在 Swift 6 中默认启用:
AccessLevelOnImport
:这是一个已经可用的实验性功能标志,允许开发人员将导入声明标记为访问级别。InternalImportsByDefault
:这是一个即将推出的功能标志,目前尚不可用,它将导入语句的隐式访问级别从public
更改为internal
,就像 Swift 6 将要做的那样。
这是语言中的一项很好的补充,我个人很长时间以来一直期待着,因为它可以帮助开发人员更好地隐藏实现细节并强制执行关注点分离。