我有这样的代码:这为什么会导致编译器崩溃?
var nodeMap:Map[Int, List[Node]] = Map[Int, List[Node]]()
nodeMap = Map[Int, List[Node]]() ++ nodes.par.groupBy(x => x.getClosest(centers))
x.getClosest返回一个int。当我去编译这个时,编译器崩溃,说它内存不足。但是,当我这样做:
var nodeMap:Map[Int, List[Node]] = Map[Int, List[Node]]()
nodeMap = nodes.groupBy(x => x.getClosest(centers))
它工作正常。
为什么?
因为编译器中存在一个错误。你在寻找什么样的答案?我建议你找到合适的地方并报告问题。 – jdigital 2012-03-07 01:08:43
我希望能够解决这个问题,或者解释它为什么会发生(如果它不是一个编译器代码,而是实现中的某些东西)。 – dave 2012-03-07 01:26:05
编译器不应该耗尽内存。它并不是真的在运行这个东西。至于解决方法,我会使用'toMap'方法(反正更好),或者如果你坚持使用变量,'nodeMap ++ =' – 2012-03-07 04:28:05