为什么不可变.IndexedSeqLike扩展mutable.SeqLike?

时间:2015-11-29 18:50:11

标签: scala scala-collections

据我所见,如果mutable.IndexedSeqLike延长mutable.SeqLike,则不会发生任何声明冲突。缺少继承是增量设计的工件,还是实际决策?

1 个答案:

答案 0 :(得分:1)

可能是前者,this changeVector成为IndexedSeq

SeqLike已创建subsequently以修补an oversight

恰好IndexedSeqLike抽象方法少于SeqLike,因为迭代是根据索引定义的。所以没有动力去扩展它。

SeqLike.transform方法已添加with a bunch of unrelated changes,因此不一定会推动统一接口。

*Like特征仅仅是实现模板。 collection.IndexedSeqLike确实从collection.SeqLike继承了行为。

不必不必要地扩展特征的一个原因是它可以改变线性化顺序,即使所有实际的具体实现确实混合了特征。