混淆变量的访问控制声明和包含变量的 class
confusion over access control declaration for variable and the class enclosing the varaible
下面的代码在 Swift 中是合法的,但是,我只是想知道为什么 class Something
没有被强制声明为私有。我之所以这么说是因为它的一个变量private var anInstanceOfWhatever: Whatever = Whatever()
是一个私有变量,如果class Something
声明为internal
或public
,我可以使用class 源文件外的东西,但是它的一个变量只能在源文件内访问,这不会造成某种冲突吗?有人可以帮我澄清一下这个概念吗?
private class Whatever{
}
class Something{
private var anInstanceOfWhatever: Whatever = Whatever()
var number: Int = 0
var text: String = ""
}
不,它不会产生冲突。如果您在文件外部使用 Something
,您将无法访问 属性 anInstanceOfWhatever
,但您可以访问每个非私有 属性 或方法。
下面的代码在 Swift 中是合法的,但是,我只是想知道为什么 class Something
没有被强制声明为私有。我之所以这么说是因为它的一个变量private var anInstanceOfWhatever: Whatever = Whatever()
是一个私有变量,如果class Something
声明为internal
或public
,我可以使用class 源文件外的东西,但是它的一个变量只能在源文件内访问,这不会造成某种冲突吗?有人可以帮我澄清一下这个概念吗?
private class Whatever{
}
class Something{
private var anInstanceOfWhatever: Whatever = Whatever()
var number: Int = 0
var text: String = ""
}
不,它不会产生冲突。如果您在文件外部使用 Something
,您将无法访问 属性 anInstanceOfWhatever
,但您可以访问每个非私有 属性 或方法。