Scala的MapLike,ListLike,SeqLike等如何各自比较图,表,序列?(Scala

2019-07-30 09:07发布

可能有人请帮助我理解Scala的各种“象”集合API的特性。 我一直在阅读过并尝试比较每个没有运气。 我想我可以看到,地图例如,扩展MapLike - 加2种的具体方法。 但是,这提出为什么在所有这样做的问题? 为什么不只是有集合API,而不是地图和MapLike在1个地图特质?

谢谢!

Answer 1:

对于这些细节的最佳来源是马丁·奥德斯基和Lex勺的“有什么用Scala 2.8的新功能:的Scala集合的建筑” :

斯卡拉集合库避免了重复代码,并通过使用通用的建设者和遍历过所谓的执行特征集合实现了“同一个结果类型”的原则。 这些特质被命名为一个Like后缀; 例如, IndexedSeqLike是实施特质IndexedSeq ,同样, TraversableLike是实施特质Traversable 。 集合类如TraversableIndexedSeq继承这些性状他们所有的具体方法实现。 实施性状有两种类型的参数,而不是一个正常的集合。 他们参数不但超过了集合的元素类型,也超过了集合的代表性类型底层集合的类型,如Seq[I]List[T] ...

如果你想在自己的集合类与集合API整合整篇文章是非常有用的,或者如果你只是想如何图书馆工作有更深的了解。



文章来源: Scala's MapLike, ListLike, SeqLike, etc how does each compare to Map, List, Seq?