Scala';s MapLike、ListLike、SeqLike等与Map、List、Seq相比如何?

Scala';s MapLike、ListLike、SeqLike等与Map、List、Seq相比如何?,scala,collections,traits,Scala,Collections,Traits,有人能帮我理解Scala在集合API中的各种“相似”特性吗。我一直在仔细阅读,并试图在没有运气的情况下对它们进行比较。我想我可以看到地图,例如,它扩展了MapLike,添加了2个具体的方法。但这就引出了一个问题:为什么要这么做?为什么不在Collections API中使用1个Map特性,而不是Map和MapLike 谢谢大家! 这些详细信息的最佳来源是: Scala集合库避免了代码重复,实现了 使用泛型构建器和遍历的“相同结果类型”原则 在所谓的实现特性中超过集合。这些特征 使用类似于后缀的命

有人能帮我理解Scala在集合API中的各种“相似”特性吗。我一直在仔细阅读,并试图在没有运气的情况下对它们进行比较。我想我可以看到地图,例如,它扩展了MapLike,添加了2个具体的方法。但这就引出了一个问题:为什么要这么做?为什么不在Collections API中使用1个Map特性,而不是Map和MapLike


谢谢大家!

这些详细信息的最佳来源是:

Scala集合库避免了代码重复,实现了 使用泛型构建器和遍历的“相同结果类型”原则 在所谓的实现特性中超过集合。这些特征 使用类似于后缀的
命名;例如,
IndexedSeqLike
IndexedSeq
的实现特征,以及类似的,
TraversableLike
Traversable
的实现特征。 集合类,如
Traversable
IndexedSeq
继承所有 他们的具体方法实现来自这些特性。 实现特征有两个类型参数,而不是一个 正常收集。它们不仅在集合的 元素类型,但也覆盖集合的表示类型, i、 例如,基础集合的类型,例如
Seq[i]
List[T]


如果您想将自己的集合类与集合API集成,或者只是想更深入地了解该库的工作原理,那么整篇文章非常有用。

我必须说,从阅读这篇摘录来看,我并不聪明(我的问题与@lalondublin相同):(我看到有一些更一般的特性的实现,但我真的看不出在哪里有用。@Karel:试试这篇文章!这是值得努力的。完整的解释太长了,无法复制到这里,而且我不认为在原始来源如此容易获得并且已经非常清楚的情况下进行解释有任何意义。谢谢你,在r读了几遍这篇文章后,我仍然很难理解这个概念(对scala来说是个新手并没有帮助),但一个关键的问题似乎是“TraversableLike”(带有2个类型参数)的概念允许某人使用Traverable接口,而不受元素和数据表示的统一类型表示的限制。没有更多的示例,我无法完全理解这一点,但我觉得我离此更近了一步!可能的重复不是实际的重复…这个问题包含在那个问题中。