我一直在搜索访问控制指南和教程,但无法找到任何信息。
想象一下,你有一些带有A
类实现的Swift模块。这个班级是internal
。它有一些属性,我们称之为prop
。
问题是:如果我将internal
的访问级别设置为public
会有什么变化?
internal class A {
public var prop: String?
}
我看到了这些代码的例子,但不明白,为什么。当您决定使用public
类型时,它是否有用,因此您不需要更改属性和方法的访问级别?或者还有其他一些实际用途,例如在类型仍为internal
的情况下允许其他人访问?
答案 0 :(得分:0)
根据Apple doc
公共变量不能定义为具有内部变量 文件私有或私有类型,因为该类型可能不可用 无处不在使用公共变量。
有关内部的更多信息 -
内部访问使实体可以在任何源文件中使用 来自他们的定义模块,但不在其他任何源文件中 模块。您通常在定义应用程序或a时使用内部访问权限 框架的内部结构。
所以在内部类中没有使用声明的public。
答案 1 :(得分:0)
整体功能没有区别:由于您的课程为internal
,因此无法在公开成员中公开,例如public var propA : A
或public func f(a:A)
,因此其成员public
1}}能见度没有区别。
但是,通过使用public
,您可以避免重复自己:您已经指定了整个班级internal
,因此您不需要将其所有成员指定为internal
如果您决定稍后将课程转换为public
,这也会很有帮助,因为您只将一个internal
修饰符更改为public
。