【发布时间】:2011-02-01 20:32:42
【问题描述】:
在尝试编写 API 时,我在 Scala 2.8(.0-beta1) 中的集合方面遇到了困难。
基本上我需要写一些东西:
- 为特定类型的不可变集合添加功能
- 其中所有方法(如 filter 和 map)都返回相同类型的集合,而无需覆盖所有内容(这就是我首先选择 2.8 的原因)
- 您通过这些方法获得的所有集合都使用与原始集合相同的参数构造(类似于 SortedSet 如何通过隐式处理排序)
- 它本身仍然是一个特征,独立于任何集合实现。
另外,我想定义一个默认实现,例如基于 HashSet。特征的伴生对象可能会使用此默认实现。我还不确定是否需要构建器工厂的全部功能将我的集合类型映射到其他集合类型。
我阅读了paper on the redesign of the collections API,但从那时起情况似乎发生了一些变化,我遗漏了其中的一些细节。我还研究了集合源代码,但我不确定它是否非常一致。
理想情况下,我希望看到的要么是一个动手教程,它一步一步地告诉我我需要的部分,要么是对所有细节的广泛描述,以便我自己判断我需要哪些部分。我喜欢“Scala 编程”中关于对象相等的章节。 :-)
但我很感激任何可以帮助我更好地理解新系列设计的文档或示例。
【问题讨论】:
-
谢谢,Lukas,我也会读。
-
另见 daily-scala.blogspot.com/2010/04/…(“创建自定义 Traversable 实现”,来自 Jesse Eichar 和“Daily scala”博客)
标签: scala scala-collections scala-2.8