2015-07-11 2407 views
1

是否可以用这种方式声明一个全局变量?在scala中声明一个全局变量

如果我运行这个片段,我会遇到一个错误

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

在此先感谢。

+0

为'var' –

+0

@orid为VAR它可以保持全球你可以声明价值? – user582040

+0

var和val都在对象范围内。不同的是,val是不可变的,而var是可变的。 –

回答

3

你理论上可以使用特质。 我不确定这是你需要的。

它应该是这样的:

trait MyTestTrait { 
    val value: String 
} 

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

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

object Test { 
    val value = ... 
} 

由于您run()功能不带参数的value内容也可以不计算它。