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

时间:2011-09-12 19:14:17

标签: scala

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

val c  = new C { i = 5 }

新C 之后的块似乎等同于:

val c = new C
c.i = 5

假设类定义如:

class C {
  var ii = 1
  def i_=(v: Int) { ii = v }
  def i = ii
}

Scala中调用的语法是什么?我想了解更多相关信息,但我无法在 Scala编程或其他地方找到它。

1 个答案:

答案 0 :(得分:9)

您正在实例化C匿名子类

等同于您展示的代码 - 尝试在代码段中名为getClass的两个实例上调用c