Scala 为什么';t mutable.IndexedSeqLike扩展mutable.SeqLike?

Scala 为什么';t mutable.IndexedSeqLike扩展mutable.SeqLike?,scala,scala-collections,Scala,Scala Collections,就我所见,如果mutable.IndexedSeqLikeextendedmutable.SeqLike,则不会发生声明冲突。缺乏继承是增量设计的产物,还是实际的决定?可能是前者,当Vector成为IndexedSeq时 SeqLike是为修补而创建的 恰好IndexedSeqLike比SeqLike具有更少的抽象方法,因为迭代是根据索引定义的。因此,没有动机扩展它 添加了SeqLike.transform方法,这样就不必统一接口 与*类似的特性仅仅是实现模板collection.Indexed

就我所见,如果
mutable.IndexedSeqLike
extended
mutable.SeqLike
,则不会发生声明冲突。缺乏继承是增量设计的产物,还是实际的决定?

可能是前者,当
Vector
成为
IndexedSeq

SeqLike
是为修补而创建的

恰好
IndexedSeqLike
SeqLike
具有更少的抽象方法,因为迭代是根据索引定义的。因此,没有动机扩展它

添加了
SeqLike.transform
方法,这样就不必统一接口

与*类似的特性仅仅是实现模板
collection.IndexedSeqLike
确实继承了
collection.SeqLike
的行为

不要不必要地扩展特性的一个原因是,它可能会改变线性化顺序,即使所有实际的具体实现都混合在特性中