2013-02-04 51 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