为什么"val a = -1"在scala中不起作用?

Han*_*Sun 2 scala

我发现val a = -1在scala REPL中工作得很好,但是如果我跳过=类似的空间val a=-1,表达式不会返回结果.

有没有人有这个想法?为什么=这里需要空间呢?

lmm*_*lmm 6

=-是Scala中合法的方法名称; 以下将有效:

class A {
  def =-(i: Int) = i
}
val a = new A
a=-1
Run Code Online (Sandbox Code Playgroud)

所以解析器无法区分你的val a=-1情况.