这个Scala语法叫做什么:new C {i = 5} //新的后面有一个块

Dan*_*ert 2 scala

我在其他人的Scala代码中遇到了这种语法,并且不记得读过它了:

val c  = new C { i = 5 }
Run Code Online (Sandbox Code Playgroud)

看来新C之后的块相当于:

val c = new C
c.i = 5
Run Code Online (Sandbox Code Playgroud)

假设类定义如下:

class C {
  var ii = 1
  def i_=(v: Int) { ii = v }
  def i = ii
}
Run Code Online (Sandbox Code Playgroud)

Scala中调用的语法是什么?我想阅读更多关于它的内容,但我无法在Scala或其他地方编程中找到它.

Jea*_*let 9

您实例化一个匿名子类C.

等同于您显示的代码 - 尝试调用代码段中调用getClass的两个实例c.