When is code in Scala objects evaluated?
有人可以向我解释为什么给出该对象:
在REPL中运行以下代码将给出:
1 2 3 4 5 6 7 8 | import HelloWorld._ // no output z // hello world // adding 1 to z // res0: Int = 2 z // res1: Int = 2 |
为澄清起见,我想解释一下输入到REPL中的每一行代码的输出。
干杯
Scala对象被延迟初始化;第一次加载和使用该对象时,它们的顶级代码将执行一次。
导入一个类不会导致它被加载,因此什么也没发生。
在REPL中评估
在REPL中再次
评估