我已经阅读了有关新修饰符的文档" open"和" fileprivate"。但有两件事我不明白:
答案 0 :(得分:1)
正如this answer所说:
我认为您的第一个问题的答案是,您无法覆盖或子类化协议或扩展。因此,open
这样的事情是没有用的,因为public
已经使它们可以在模块之外访问。
对于你的第二个问题,我会说如果你计划覆盖或继承,你应该只将你自己的类声明为open
。否则,您允许不必要地访问这些项目。大部分时间public
应该符合您的需求。
修改强>:
正如@Alex指出的那样,我不认为允许这种"额外访问"有许多缺点。我唯一能想到的就是你只是想保护你的课程免受你未来的影响,但这可能适用也可能不适用。因此,如果情况并非如此,默认情况下将它们设置为open
并不会造成太大的伤害。
答案 1 :(得分:0)
打开用于另一个模块,例如,在我们在单元测试或可可豆荚中使用它时,您可以