为什么 mutable.IndexedSeqLike 不扩展 mutable.SeqLike?
Why doesn't mutable.IndexedSeqLike extend mutable.SeqLike?
据我所知,如果 mutable.IndexedSeqLike
扩展 mutable.SeqLike
,则不会发生声明冲突。缺少继承是增量设计的产物,还是实际决定?
可能是前者,在 this change 时 Vector
变为 IndexedSeq
。
SeqLike
已创建 subsequently to patch an oversight。
碰巧IndexedSeqLike
的抽象方法比SeqLike
少,因为迭代是根据索引定义的。所以没有动力去扩展它。
添加了 SeqLike.transform
方法 with a bunch of unrelated changes,因此这不一定会推动接口的统一。
*Like
特征只是实现模板。 collection.IndexedSeqLike
确实继承了 collection.SeqLike
的行为。
不要不必要地扩展特征的一个原因是它可能会改变线性化顺序,即使所有实际的具体实现都混合在特征中。
据我所知,如果 mutable.IndexedSeqLike
扩展 mutable.SeqLike
,则不会发生声明冲突。缺少继承是增量设计的产物,还是实际决定?
可能是前者,在 this change 时 Vector
变为 IndexedSeq
。
SeqLike
已创建 subsequently to patch an oversight。
碰巧IndexedSeqLike
的抽象方法比SeqLike
少,因为迭代是根据索引定义的。所以没有动力去扩展它。
添加了 SeqLike.transform
方法 with a bunch of unrelated changes,因此这不一定会推动接口的统一。
*Like
特征只是实现模板。 collection.IndexedSeqLike
确实继承了 collection.SeqLike
的行为。
不要不必要地扩展特征的一个原因是它可能会改变线性化顺序,即使所有实际的具体实现都混合在特征中。