是否有可能以及如何设置只能设置一次的var?

Ant*_*ton 9 scala

是否有一种本地方法可以确保变量只能设置一次?

目前,我正在使用这种方法

class SetOnceVariable[T]
{
  private var value : T = _

  private var initialized = false

  def apply(_v : T = _) : T =
  {
    if (value != null && !initialized) {
      value = _v
      initialized = true
    }
    value
  }
}

class ClientInfo
{
  val userIP : SetOnceVariable[String] = new SetOnceVariable[String]
}
Run Code Online (Sandbox Code Playgroud)

小智 0

您可以使用 val 创建常量变量。例如:

val a = 0; // Cannot be changed
var b = 0; // Can be changed
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅此答案:/sf/answers/125454521/

编辑:

val 也可以先声明,然后再初始化。

val a;
a = 0;
Run Code Online (Sandbox Code Playgroud)

  • 我认为安德烈想要的是可以在以后设定其价值的东西。 (3认同)