如果我有一个表达式,例如:
block 1 {
val x = 5
}
然后我做:
block 2 {
val z = x + 5
val y = x + 4
val a = x * 2
val b = x / 5
}
block 2
中的陈述是否同时执行?
如何将block 1
更改为lazy val x = 5
会影响block 2
的执行?
如何将block 1
更改为var x = 5
影响执行block 2
?
答案 0 :(得分:6)
块2中的语句是否同时执行?
没有。它们是按顺序执行的。
如何将块1更改为
lazy val x = 5
影响块2的执行?
初始化z
需要稍长时间,因为它需要等待x
初始化。然后就会正常进行。
如何将块1更改为
var x = 5
影响执行块2?
原样,它不会。
要让它们同时执行,您必须在不同的线程上执行此操作,最好使用Future
。