想象一下用于从图中移除顶点和边的api。我希望下面这个api是不言自明的,但注意Addable
是一个特征。
/*
* Convenience method for bulk removal of both vertices and edges
*/
def -= (inputs: Set[Addable]): AbstractGraph[VertexID, Vertex, Edge] = {
inputs foreach {
case v : AbstractVertex[VertexID] => -= (v.asInstanceOf[Vertex])
case e : AbstractEdge[VertexID] => -= (e.asInstanceOf[Edge])
}
}
由于Addable
的不变性,此api函数不能用于具体Addable
(那些extendending Set
)的集合。在api中解决它的任何好主意,而不是在呼叫站点?