Новое в мире 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>
Еще одна дублирующая цель: stackoverflow.com/questions/52017702/…




Это потому, что scala думает, что println() принимает другой параметр, когда видит {}. Вы также можете протестировать следующий код,
scala> println(8){}
^
error: Unit does not take parameters
scala> println(1)()
^
error: Unit does not take parameters
Вам нужно добавить новую строку между 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
поставить точку с запятой в конце println(x); тоже сработает
Возможный дубликат Scala: "рекурсивное значение... нужен тип", но я использую только типы Java