Lal*_*lin 19 collections scala traits
有人可以帮我理解Scala在集合API中的各种"喜欢"特征.我一直在阅读并试图比较每一个没有运气.我想我可以看到Map,例如,扩展MapLike - 添加2个具体方法.但这引出了为什么要这样做的问题?为什么不在Collections API中使用1个Map特征而不是Map和MapLike?
谢谢!
Tra*_*own 15
这些细节的最佳来源是Martin Odersky和Lex Spoon的"Scala 2.8中的新功能:Scala集合的架构":
Scala集合库避免了代码重复,并通过在所谓的实现特征中使用通用构建器和遍历集合来实现"相同结果类型"原则.这些特征用
Like后缀命名; 例如,IndexedSeqLike是实现特征IndexedSeq,同样,TraversableLike是实现特征Traversable.集合类,例如Traversable或IndexedSeq继承这些特征的所有具体方法实现.实现特征有两个类型参数,而不是一个用于普通集合.它们不仅可以对集合的元素类型进行参数化,还可以对集合的表示类型进行参数化, 即基础集合的类型,例如Seq[I]或List[T]...
如果您想将自己的集合类与Collections API集成,或者您只是想更深入地了解库的工作原理,那么整篇文章非常有用.