1

我是 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

4

1 回答 1

2

这不是一个例外,只是一个你可以忽略的警告。它警告说,在粘贴模式下,表达式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
于 2018-09-17T04:49:35.173 回答