【发布时间】:2021-02-21 22:32:27
【问题描述】:
当 this Bind to a package vs Private[PackageName] 时,我很难理解 Private[this]
例如
这很好用:
package scopeA {
private[scopeA] class PrivateClass1
class PrivateClass2 extends PrivateClass1
}
但这不是
package scopeA {
private[this] class PrivateClass1
class PrivateClass2 extends PrivateClass1 //private class PrivateClass1 escapes its defining scope as part of type scopeA.PrivateClass1
}
但是,如果我这样修改第二个:
package scopeA {
private[this] class PrivateClass1
private class PrivateClass2 extends PrivateClass1
}
private[this]或private,在最后一个场景中效果相同。
我可以看出区别,但我无法准确地说出它。因此我的问题是,当这个绑定到一个包时,Private[this] 的含义是什么?和private[PackageName]有什么不同,两者的具体区别是什么?
有一些关于转义我不确定要遵循的范围的东西,为什么使用包名可以但不是这个?
【问题讨论】:
-
我很惊讶
private[this]起作用了。 -
@LuisMiguelMejíaSuárez 既然有
scopeA.type,那么有scopeA的this也就不足为奇了。