Scala中x = y = 1?

sc_*_*ray 13 scala return-type return-value variable-assignment

在阅读Scala for the Impatient一书时,我遇到了这个问题:

提出一种情况,其中赋值x = y = 1在Scala中有效.(提示:为x选择合适的类型.)

我不确定作者究竟是什么意思.赋值不会返回一个值,所以var x = y = 1应该返回Unit()作为x的值.有人能指出我在这里可能会缺少什么吗?

谢谢

Tom*_*icz 12

事实上,x就是Unit在这种情况下:

var y = 2
var x = y = 1
Run Code Online (Sandbox Code Playgroud)

可以理解为:

var y = 2
var x = (y = 1)
Run Code Online (Sandbox Code Playgroud)

最后:

var x: Unit = ()
Run Code Online (Sandbox Code Playgroud)


tim*_*day 5

你可以x=y=1在没有错误的情况下输入REPL shell:

var x:Unit = {}
var y = 0
x = y = 1
Run Code Online (Sandbox Code Playgroud)

  • 这就是我的想法,除了我会写`var x =()` (2认同)