我處於想要創建一個不可變的集合和一個可變的狀態。它們都共享一些與不變性無關的部分。也許我應該潛入並且看看Scala集合是如何實現的,但我並不想創建一個完整的集合類型。斯卡拉類型問題
我現在有這個權利,但感覺不太對勁。
trait StyleMapping[T <: Style[T]] {
type Mappings <: scala.collection.Map[Option[String], T]
val mappings: Mappings
def get(classNames: List[String]): Option[T] = {
mappings.get(...) // Do something here.
}
}
,這是一個不變的實現的例子:
class ImmutableStyleMapping[T <: Style[T]](
val mappings: Map[Option[String], T)
extends StyleMapping[T] {
type Mappings = Map[Option[String], T]
}
這工作,但感覺就像我重複類型遍佈代碼。抽象類型是最好的方式,還是應該以不同的方式進行設計?對於如何以不同的方式完成這項工作,我們將不勝感激。
爲什麼downvote? – huynhjl 2011-05-26 15:35:37
你的問題到底是什麼?它是如何避免一遍又一遍地重複類型? – pedrofurla 2011-05-26 15:41:45
@huynhjl,這不是我的,但我不反對。 @ chrsan想要學習的內容並不十分清楚。 – pedrofurla 2011-05-26 15:43:04