Scala REPL问题-Multiexpression问题

时间:2018-09-17 03:59:42

标签: scala

我是scala的新手,在REPL中使用:paste命令时遇到异常

scala> :paste
// Entering paste mode (ctrl-D to finish)

1+2
println("welcome to scala world")

// Exiting paste mode, now interpreting.

<console>:11: warning: a pure expression does nothing in statement position; multiline expressions may require enclosing parentheses
       1+2
        ^
welcome to scala world

scala> scala版本:Scala代码运行程序版本2.12.3-版权所有2002-2017,LAMP / EPFL和Lightbend,Inc

1 个答案:

答案 0 :(得分:1)

这也不例外,只是一个您可以忽略的警告。它警告说,在粘贴模式下,表达式1+2无效,结果将不会打印。 如果您要在正常模式下输入两行,则REPL将打印每个表达式的结果。

scala> 1+2
res1: Int = 3

scala> println("welcome to scala world")
welcome to scala world

警告的第二部分是针对您打算使用多行表达式的情况,其中每一行都是有效的表达式,例如

scala> :paste
// Entering paste mode (ctrl-D to finish)

1+2
-5

// Exiting paste mode, now interpreting.

<console>:48: warning: a pure expression does nothing in statement position; you may be     omitting necessary parentheses
       1+2
        ^
res1: Int = -5

不同
scala> :paste
// Entering paste mode (ctrl-D to finish)

(1+2
-5)

// Exiting paste mode, now interpreting.

res22: Int = -2