Откуда х? - PullRequest
       5

Откуда х?

0 голосов
/ 23 апреля 2020
object Test1 {
    def main(args: Array[String]): Unit = {
        foo(10)
    }

    def foo(a: Int) = {

        println(x = 20)
    }
}

Я могу использовать x, так откуда же x? Я очень смущен enter image description here

Ответы [ 2 ]

2 голосов
/ 23 апреля 2020

У меня была эта проблема с locally, поэтому теперь именование ее параметра устарело. Вероятно, println заслуживает того же обращения.

Теперь, в аргументах arg parens, x = 1 никогда не означает присвоение; для этого вы должны использовать блочный синтаксис.

scala> { var x = 0 ; locally(x = 1) ; x }
                               ^
       warning: naming parameter x is deprecated.
res0: Int = 0

scala> { var x = 0 ; println(x = 1) ; x }
1
res1: Int = 0

scala> { var x = 0 ; println { x = 1 } ; x }
()
res2: Int = 1

scala> { var y = 0 ; println(y = 1) ; y }
                               ^
       error: unknown parameter name: y
       Note that assignments in argument position are no longer allowed since Scala 2.13.
       To express the assignment expression, wrap it in brackets, e.g., `{ y = ... }`.
0 голосов
/ 23 апреля 2020

х = 20, это НАЗВАННЫЕ АРГУМЕНТЫ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...