在 swift 中,什么时候在声明类时显式使用访问修饰符“internal”会产生任何影响?
最佳答案
它不会对编译器产生影响,因为它是默认设置(但请参阅下文)。但它可以通过发出意图信号,对阅读代码的开发人员产生影响。例如,考虑一个嵌套类型:
public struct X {
struct Y {
init() {}
}
}
不经意的读者可能会认为 Y
是公开的,因为 X
是公开的。但这种情况并非如此。 Y
是内部的。在定义中添加显式 internal
可以清楚地表明缺少 public
是有意而非疏忽。
目前可以使用 internal
创建误导性的情况。例如:
private struct X {
internal struct Y {
init() {}
}
}
人们可能认为这是一个错误(或至少是一个警告),但事实并非如此。这实际上是预期的行为(由 SE-0025 描述)。如果您想了解有关访问控制当前状态的更多信息,我推荐 SE-0025,因为它们在 Swift 3 中发生了变化。
关于swift - 在 swift 中,什么时候在声明类时显式使用访问修饰符 "internal"会产生任何影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39501757/