2013-02-04 28 views
3

我想编写自定义线性集合。在某些特定情况下(如不适用于所有参数类型)类似于扩展列表。如何在scala中编写自定义线性集合

斯卡拉有复杂的集合类层次结构,我迷路了。我应该延伸什么特质,应该采用什么方法?

我找到了理解教程定制可遍历执行:http://daily-scala.blogspot.ru/2010/04/creating-custom-traversable.html

我正在寻找有关实现自定义线性序列的类似提示。

+0

只是增加了对其他读者的信息:斯卡拉收藏指南:HTTP: //docs.scala-lang.org/overviews/collections/introduction.html和scala集合api:http://www.scala-lang.org/api/current/index.html#scala.collection.package – xhudik

回答

3

这实际上和实施traverasable没有什么不同。在LinearSeq上只有两个抽象方法,而在LinearSeqLike上有三个抽象方法,你也应该扩展。

然而,作为后者的文档表明,它是重写下面的方法,使他们有一个高效的实现是非常重要的:

def isEmpty: Boolean 
def head: A 
def tail: Repr