scala - 我可以在一行中在 Scala 中制作 "public val"但 "private var"吗?

标签 scala scala-2.8

IE。是否可以制作一个不可从类外分配的 var ?

最佳答案

现在,不,没有办法做到这一点。

您仅限于以下三行解决方案:

class Hider {
  private[this] var xHidden: Int = 0
  def x = xHidden
  private def x_=(x0: Int) { xHidden = x0 }
}

现在类本身是唯一可以操作基础字段 xHidden 的类。 ,而该类的其他实例可以使用setter方法,每个人都可以看到getter方法。

如果您不介意使用不同的名称,您可以将 var 设为私有(private)并忘记 setter(两行)。

没有“var to me, val to them”关键字。

关于scala - 我可以在一行中在 Scala 中制作 "public val"但 "private var"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4987929/

相关文章:

java - 为什么抽象变量需要在 Scala 中进行类型注释?

scala - 如何处理 'Configuration error[Cannot connect to database [...]]'

scala - 在 Scala 中,构造函数如何引用它正在创建的对象?

scala - Akka 流批处理

java - 从 Java 代码访问 Scala 对象

java - 当需要 Scala 的列表时,使用 java.util.List 从 Java 调用 Scala 代码

scala - 为什么 scala 不允许在 case 语句中使用 '$' 标识符?

scala - 使用 Scala 中 for 循环的值填充列表

generics - Scala 2.8 CanBuildFrom

scala - Scala 中的方法何时需要返回类型?