scala - 在 Scala 中的对象成员上使用 private[this]

标签 scala

在以下代码中:

object MyObj {
  private[this] def myMethod = .....
}

我对访问修饰符(私有(private)、公共(public)......等)的 this 修饰符的理解是 this 的存在使其特定于该实例!在上述情况下,我们只有一个实例。那么这不是多余的吗?

最佳答案

一个 private成员(称为类私有(private))可以从类及其伴生对象访问。一个 private[this]成员(称为对象私有(private))确实无法从伴随对象外部访问。

class MyObj {
  MyObj.classPrivate
  MyObj.objectPrivate // error: symbol is not accessible
}
object MyObj {
  private def classPrivate = ???
  private[this] def objectPrivate = ???
}

所以简而言之,这里的关键字不是多余的。

关于scala - 在 Scala 中的对象成员上使用 private[this],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30090036/

相关文章:

scala - 为什么在某些情况下会忽略高阶隐式?

scala - Ubuntu + scala REPL,未在控制台上键入的命令

scala - StringTokenizer 到 Scala 迭代器

scala - 如何使用 IntelliJ Idea 摆脱 scalac ServerException

Scala 库可用于编译和测试配置

scala - Scala:如何指定varargs作为类型?

scala - 有没有办法从列表创建元组(无需代码生成)?

scala - 模拟时间和 Akka 调度器

eclipse - 为什么 Scala `var` 在 Eclipse 中以红色突出显示

java - play2 在子模块/子项目中使用主项目 View / Controller /模型,反之亦然