代码之家  ›  专栏  ›  技术社区  ›  Learn Hadoop

Scala REPL问题-多表达式问题

  •  0
  • Learn Hadoop  · 技术社区  · 6 年前

    我是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 code runner版本2.12.3——版权所有2002-2017,LAMP/EPFL和Lightbend,Inc

    1 回复  |  直到 6 年前
        1
  •  2
  •   Harald Gliebe Grzegorz Wierzowiecki    6 年前

    这不是一个例外,只是一个你可以忽略的警告。它警告在粘贴模式下表达式 1+2 没有效果,结果不会被打印。

    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