为什么这段代码会破坏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.
编译器崩溃总是错误.但是为什么你要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)
(并且编译器对这些中的任何一个都满意).