斯卡拉:私人制定者的公共吸气者?

Ale*_*sky 29 scala

如何在Scala中创建一个具有公共getter但是setter是私有的字段?

编辑:太糟糕了没有像Groovy那样的单行方式.这些解决方案看起来都很笨重.

Jea*_*let 26

class Foo {
  private var _value: Int = 0
  def value = _value
}
Run Code Online (Sandbox Code Playgroud)

  • 人们可能更喜欢“类Foo(private var _value:Int){def value = _value}”。 (2认同)
  • 可能,虽然这会将`_value`暴露为命名参数,但这可能不是我想要的. (2认同)

agi*_*eel 10

class ExplicitProperty {
   private[this] var s: Int = _
   def size = s
   private def size_=(x: Int) {
      s = x
   }
}
Run Code Online (Sandbox Code Playgroud)