如何在Scala 2.8中实现集合?
在尝试编写API时,我正在与2.8(.0-beta1)中的Scala集合作斗争 基本上我需要写一些东西:如何在Scala 2.8中实现集合?,scala,scala-collections,scala-2.8,Scala,Scala Collections,Scala 2.8,在尝试编写API时,我正在与2.8(.0-beta1)中的Scala集合作斗争 基本上我需要写一些东西: 向特定类型的不可变集合添加功能 所有方法(如filter和map)都返回相同类型的集合,而不必重写所有内容(这就是我最初选择2.8的原因) 通过这些方法获得的所有集合都是使用原始集合具有的相同参数构造的(类似于SortedSet通过隐式排序的方式) 这本身仍然是一个特性,独立于任何集合实现 此外,我还想定义一个默认实现,例如基于哈希集的实现。trait的伴随对象可能使用此默认实现。我还不
- 向特定类型的不可变集合添加功能
- 所有方法(如filter和map)都返回相同类型的集合,而不必重写所有内容(这就是我最初选择2.8的原因)
- 通过这些方法获得的所有集合都是使用原始集合具有的相同参数构造的(类似于SortedSet通过隐式排序的方式)
- 这本身仍然是一个特性,独立于任何集合实现
但是,我非常感谢任何文档或示例的指点,它们可以帮助我更好地理解新集合的设计。我想看看collection.immutable.BitSet的实现。它有点分散,重用collection.BitSetLike和collection.generic.BitSetFactory中的内容。但它完全符合您的要求:实现一个特定元素类型的不可变集,以添加新功能。谢谢,卢卡斯,我也会读到这篇文章。另请参阅“创建自定义可遍历实现”,来自Jesse Eichar和“Daily scala”博客)感谢指针,Martin,我将研究位集。它似乎比SortedSet更清晰。我实际上想写的是建立在集合之上的东西,但它独立于集合的任何实现。然后,我需要另一个类,通过将它与一组实现相结合来实现我的trait。我想这里的选择是混合还是前进。