在scala中声明一个全局变量

在scala中声明一个全局变量,scala,Scala,可以用这种方式声明全局变量吗 如果运行此代码段,我将遇到一个错误 object Test { val value -> error on this line for declaration issue def run() { value = ... } def main(args: Array[String]) { run() } 提前谢谢。不,那是不可能的。您应该这样做: object Test { val value = ... } 由于您的

可以用这种方式声明全局变量吗

如果运行此代码段,我将遇到一个错误

object Test {
  val value -> error on this line for declaration issue
  def run() {
    value  = ... 
  }
def main(args: Array[String]) {
    run()
  }

提前谢谢。

不,那是不可能的。您应该这样做:

object Test {
  val value = ...
}

由于您的
run()
函数不带参数,因此
值的内容也可以在不带参数的情况下计算。

理论上,您可以使用特性进行计算。 我不确定这是你需要的

它看起来是这样的:

trait MyTestTrait {
  val value: String
}

object MyTest extends MyTestTrait {
  val value = "yo!"
  def run = println(value)
}

您可以将值声明为
var
@orid作为var它可以保持全局?var和val都在对象范围内。区别在于val是不可变的,而var是可变的。public
var
是Scala惯用特性之一。