Scala 14:错误:单元不带参数

Lea*_*oop 0 java scala

Scala 世界和练习的新手,在 Windows REPL 中的代码行下方执行。获取错误单元不接受参数。对此有任何想法。

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

val x:Int = 10
println(x)
{
val x:Int =20
println(x)
}
println(x)

// Exiting paste mode, now interpreting.

<pastie>:14: error: Unit does not take parameters
{
^

scala>
Run Code Online (Sandbox Code Playgroud)

pra*_*upd 5

那是因为 scala 认为println()在看到{}. 您也可以使用以下代码进行测试,

scala> println(8){}
                 ^
       error: Unit does not take parameters

scala> println(1)()
                 ^
       error: Unit does not take parameters
Run Code Online (Sandbox Code Playgroud)

您需要在println()和之间添加一个新行,{}以使编译器满意。

示例:https : //scastie.scala-lang.org/prayagupd/jbPWBesyTvihwue8soE5Og

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

val x:Int = 10
println(x)

{
val x:Int =20
println(x)
}
println(x)

// Exiting paste mode, now interpreting.

10
20
10
x: Int = 10
Run Code Online (Sandbox Code Playgroud)

  • 在 `println(x);` 末尾加上分号也可以 (3认同)