为什么加号需要在行的末尾而不是在下一行的开头?

时间:2017-10-31 12:47:39

标签: kotlin

在Kotlin中,如果你想要一个加法表达式跨越多行,你需要在行的末尾添加加号,而不是在开头。例如:

var a = 1
var b = 2
var c = 3

var d = a +
    b +
    c

println(d) // prints "6"

var e = a
    + b
    + c

println(e) // prints "1"

据我所知,这是因为Kotlin将第二个例子解释为三个单独的陈述,如下所示:

var e = a
+ b
+ c

但我没有找到任何文件说明为什么+ somevariable本身就是一个有效的陈述。它不会增加变量,println(+somevariable)会打印与println(somevariable)相同的值。

1 个答案:

答案 0 :(得分:2)

我相信行

val a = 5
+ 6

被解析为两个语句:

  1. 定义var,其值为5
  2. 表达式+6,带有一元加号。
  3. 我在Scala语言中遇到了同样的问题。