我有多个相同类型的图表。我想将它们存储在一个数组中。但是当我在数组中附加一个图形时,我得到的错误是' ++'图形中不支持操作。
当我使用这种方法时:
var graphsArray = Array.empty[Graph[Object,Object]]
graphsArray :+ Graph(myVertices, myEdges)
我得到空数组,没有添加任何值。
答案 0 :(得分:0)
默认的scala Array
是不可变的。这意味着:+
方法返回带有新值的新数组,而graphsArray
保持与创建时相同(空)。由于您未将:+
的结果分配给任何内容,因此您将失去结果。
如果要使用可变数组,可以使用ArrayBuffer
。如果要保留默认的scala不可变行为,可以使用fold
添加所有图形。
val emptyArray = Array.empty[Graph[Object, Object]]
val myGraphs = ...
val graphsArray = myGraphs.fold(emptyArray) { case (arr, elm) => arr :+ elm }