我有這樣的代碼:這爲什麼會導致編譯器崩潰?
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