【发布时间】:2017-06-04 03:52:58
【问题描述】:
Swift 提供 5 种访问修饰符:open、public、internal、fileprivate 和 private。
我对这些说明符的了解,(主要来自link & link_2)
open 表示类和类成员可以在定义模块(目标)内外进行子类化和覆盖。
fileprivate 将实体的使用限制在其定义源文件中。一个文件中的多个类基本上可以访问。
private 将实体的使用限制在其封闭声明中。
现在,对我来说,公共和内部似乎几乎相同:-
public 表示类和类成员只能在定义模块中进行子类化和覆盖(目标)。
internal 使实体能够在定义模块中使用(目标)。此外,如果没有提及其他内容,这恰好是默认说明符。在定义应用或框架的内部结构时,我们通常会使用内部访问。
那么基本上 public 和 internal 有什么不同呢?
这是我在这里的第一个问题,所以如果我错过了任何细节,请告诉我。提前致谢。
【问题讨论】:
-
public在定义模块之外可见,internal不可见 -
@user28434 我相信
public仅在定义模块中可见。 -
@user28434,您可以参考上面提到的链接进行确认。
-
你认为错了,你可以直接参考Apple doc和/或自己在代码中尝试
-
@iCode 你的第二个链接也说:允许其他模块使用公共类和公共成员