我知道我不应该使用var,因为它并不是纯净的,在Scala中有可能做这样的事情吗?
var a: Int = 0
var b: Int = 4
(a, b) = (4, 8)
到目前为止,我收到编译错误
Error:(73, 10) ';' expected but '=' found.
(a, b) = (4, 8)
致谢。
答案 0 :(得分:4)
简单的回答是“否”。
一个简单的解决方案是将a
和b
存储为元组,并根据需要将其解压缩:
var ab = (0, 4)
ab = (4, 8)
val (a, b) = ab
// Use a and b
问题在于Scala不支持多重分配,这是这里所需要的。它只能在声明或match
语句的一部分中解构元组。