首页 文章

如何在Scala 2.8中实现集合?

提问于
浏览
13

在尝试编写API时,我正在努力使用Scala的2.8(.0-beta1)集合 .

基本上我需要的是写一些东西:

  • 为某种类型的不可变集添加了功能

  • 其中所有像filter和map这样的方法返回相同类型的集合而不必覆盖所有内容(这就是为什么我首先选择2.8)

  • 通过这些方法获得的所有集合都使用与原始集合相同的参数构造(类似于SortedSet通过implicits进行排序的方式)

  • 本身仍然是一个特征,独立于任何集合实现 .

另外,我想定义一个默认实现,例如基于HashSet . 特征的伴随对象可能使用此默认实现 . 我不确定是否需要构建器工厂的全部功能来将我的集合类型映射到其他集合类型 .

我读了paper on the redesign of the collections API但是从那时起事情似乎发生了一些变化,而且我已经挖掘了集合源代码,但我还是非常一致 .

理想情况下,我希望看到的是一个实践教程,它一步一步地告诉我我需要的部分或者对所有细节的详尽描述,以便我可以判断自己需要哪些部分 . 我喜欢"Programming in Scala"中有关对象平等的章节 . :-)
但我很欣赏任何有助于我更好地理解新系列设计的文档或示例 .

1 回答

  • 17

    我将看一下collection.immutable.BitSet的实现 . 它有点散布,重用来自collection.BitSetLike和collection.generic.BitSetFactory的东西 . 但它完全按照您的指定执行:实现添加新功能的特定元素类型的不可变集合 .

相关问题