这个Scala代码是否正确?

Łuk*_*Lew 1 scala scala-2.8

为什么这段代码会破坏Scala 2.8.1编译器?

val a = new Array[{ var x = 1 }](3)
Run Code Online (Sandbox Code Playgroud)

这是编译器错误吗?

无论如何它是一个合法的Scala代码?(我想要一个具有匿名类类型的对象数组)

更新:

我想要的是:

class X { var x = 1}
val a = new Array[X](3)
Run Code Online (Sandbox Code Playgroud)

但无需定义独立的X.

Rex*_*err 8

编译器崩溃总是错误.但是为什么你要x类型声明中设置等于1 ?

你可能想要其中一个:

val a = new Array[{var x: Int}](3)
val a = Array.fill(3)(new { var x = 1 })
Run Code Online (Sandbox Code Playgroud)

(并且编译器对这些中的任何一个都满意).