-2
我有一個類E
與一些元素。我想E執行Iterable
或類似的Collections界面。我可以檢索任意的元素。如果我申請(我:詮釋),我怎麼能有地圖?
換句話說:我有一個支持apply(n: Int)
的類,給元素n。我想支持地圖和類似的方法。我怎樣才能做到這一點?
UPDATE:換句話說,我想它有收藏接口
我有一個類E
與一些元素。我想E執行Iterable
或類似的Collections界面。我可以檢索任意的元素。如果我申請(我:詮釋),我怎麼能有地圖?
換句話說:我有一個支持apply(n: Int)
的類,給元素n。我想支持地圖和類似的方法。我怎樣才能做到這一點?
UPDATE:換句話說,我想它有收藏接口
您不能單獨apply
做到這一點,因爲所有的非流收藏需要的尺寸,但如果你能實現apply
和length
然後您可以繼承IndexedSeq
,並且您將爲您實現大多數常規收集方法。
舉例來說,這裏是你如何能與wrapps陣列集合做到這一點:
class ArrayCollection[+E](items : Array[E]) extends IndexedSeq {
override def apply(n : Int) : E = items(n)
override def length : Int = items.length
}
我懷疑有一個籠統的回答。你想支持哪些方法? ('map','flatMap','withFilter'?)你的類代表什麼,這些方法應該做什麼? –
不知道爲什麼downvote!首先,我認爲這是可能的:查看更新。更重要的是,誰曾經聽說過低調,因爲沒有辦法做到這一點? – SRobertJames
如果你想「支持」map,你可以定義一個map方法嗎?如果你想實現某些特定性狀的方法(例如'Traversable'或'Seq'),擴展這個特徵(儘管我知道沒有「Collections接口」)。 (你沒有被低估,因爲沒有辦法做到這一點,但是因爲你的問題很不明確,並且不清楚你是否嘗試過最基本,最明顯的事情) – lmm