1
为什么这段代码崩溃了Scala 2.8.1编译器?这个Scala代码是否正确?
val a = new Array[{ var x = 1 }](3)
它是一个编译器错误吗?
无论如何,这是一个合法的Scala代码? (我想用匿名类类型对象的数组)
更新:
我想是这样的:
class X { var x = 1}
val a = new Array[X](3)
但不必定义独立的X
为什么这段代码崩溃了Scala 2.8.1编译器?这个Scala代码是否正确?
val a = new Array[{ var x = 1 }](3)
它是一个编译器错误吗?
无论如何,这是一个合法的Scala代码? (我想用匿名类类型对象的数组)
更新:
我想是这样的:
class X { var x = 1}
val a = new Array[X](3)
但不必定义独立的X
编译崩溃总是错误。但你为什么试图在类型声明中设置x
等于1?
你可能想其中的一个:
val a = new Array[{var x: Int}](3)
val a = Array.fill(3)(new { var x = 1 })
(和编译器是幸福与任一)。
它不会为我(Scala 2.8)崩溃,所以它可能是一个错误。
如果我不允许引用它,我到底该如何键入类型检查?它甚至没有我可以声明结构类型来匹配的方法。 – 2011-02-14 11:39:29
我绝不是专家,但由于编译器崩溃,我会说这是一个错误。 – gruenewa 2011-02-14 12:08:18