据我所见,如果mutable.IndexedSeqLike扩展mutable.SeqLike,则不会发生声明冲突。缺少继承是增量设计的产物,还是实际的决定?
mutable.IndexedSeqLike
mutable.SeqLike
发布于 2015-11-30 05:43:36
可能是前者,在这一变化,当Vector成为IndexedSeq时。
Vector
IndexedSeq
SeqLike被创建为随后来修补疏忽。
SeqLike
IndexedSeqLike的抽象方法比SeqLike少,因为迭代是以索引的形式定义的。所以没有扩大它的动机。
IndexedSeqLike
SeqLike.transform方法添加了有很多不相关的变化,因此不一定会驱动接口的统一。
SeqLike.transform
*Like的特点仅仅是实现模板。collection.IndexedSeqLike确实继承了collection.SeqLike的行为。
*Like
collection.IndexedSeqLike
collection.SeqLike
不一定要扩展一个特性的原因之一是,它可以改变线性化顺序,即使所有实际的具体实现都混合在这些特性中。
https://stackoverflow.com/questions/33986611
相似问题