Swift 下划线是什么_&引用;斯威夫特是什么意思?

Swift 下划线是什么_&引用;斯威夫特是什么意思?,swift,module,naming-conventions,header-files,naming,Swift,Module,Naming Conventions,Header Files,Naming,我在浏览Swift模块标题时发现: protocol _ObjectiveCBridgeable { 同样地: protocol _SequenceType { 来自Objective-C的背景,这对我来说似乎非常不传统。下划线\uuu通常意味着相关实体是私有的,并且通常在标题可见性方面是隐藏的。为什么在Swift中它们是公开可见的?Swift的命名约定是否发生了变化?就Swift而言,这些约定似乎发生了变化,如下所示: /// This protocol is an implementat

我在浏览Swift模块标题时发现:

protocol _ObjectiveCBridgeable {
同样地:

protocol _SequenceType {

来自Objective-C的背景,这对我来说似乎非常不传统。下划线
\uuu
通常意味着相关实体是私有的,并且通常在标题可见性方面是隐藏的。为什么在Swift中它们是公开可见的?Swift的命名约定是否发生了变化?

就Swift而言,这些约定似乎发生了变化,如下所示:

/// This protocol is an implementation detail of `SequenceType`; do
/// not use it directly.
///
/// Its requirements are inherited by `SequenceType` and thus must
/// be satisfied by types conforming to that protocol.
protocol _SequenceType {
}
正如您所看到的,下划线
\uuu
现在似乎意味着相关实体是其逻辑子实体的“实现细节”。

我相信(Swift开发团队在论坛上声明)Swift目前存在特定限制,迫使他们对各种协议进行两部分声明。据推测,最终这些将消失,方法将迁移到非下划线版本中。只要您只使用非下划线的代码,那么在发生这种情况时,您的代码应该可以重新编译,因此,出于这个原因,您永远不应该直接实现
版本