如何以更通用的方式引用ArrayBuffer和Vector?
例如 - 我的一个函数将Vector作为参数,而另一个函数返回一个ArrayBuffer。 我可以使用什么常见的“iterface”?
例如,在Java中,我可以使用列表或集合界面来传递它们。
答案 0 :(得分:9)
有关集合类之间的继承关系的概述,请参阅here。
你会看到IndexedSeq是ArrayBuffer和Vector的共同特征。
编辑:IndexedSeq与Seq:
来自doc:Indexed sequences do not add any new methods wrt Seq, but promise efficient implementations of random access patterns.
这意味着,在这种情况下,您也可以使用Seq,因为实现将由ArrayBuffer和Vector提供。
答案 1 :(得分:3)
我会使用SeqLike或更多通用TraversableOnce,这也适用于Map
。