我想要一個自定義類,功能上延伸List[Double]
,並增加了一些功能。我皮條客我的理解圖書館將導致我構建這樣的事情:如何擴展列表[雙]
implicit class MahThing(list:List[Double]) {
def mahStuff = ...
}
的問題是,現在到處都是MahThing
是進口的,所有List[Double]
■找做mahStuff
的選項。
與相同:
class MahThing(list:List[Double]) {
def mahStuff ...
}
implicit def toThing(list:List[Double]) = new MahThing(list)
現在,list.toThing
產生MahThing
,但MahThing
不能做List
ÿ東西。辛苦地定義List
作業MahThing
作爲list.operation
是辛苦的。出於某種原因,與MahThing
的實例一起工作,它使我例如在map
操作中聲明變量類型。
我真正需要的是擴展List[Double]
的確切功能。應該是MahThing
的事情可以做mahStuff
,沒有其他人做。 Plus MahThing
在所有其他方面的行爲就像List
一樣。
你可以添加另一個隱式轉換 - 從'MahThing'到'List [Double]' – Shadowlands
你究竟在做什麼? 'list'是'MahThing'的實現細節嗎?你打算'list'是可變的,這樣'mahThing.list.someMutatingListOperation(...)'是不可行的嗎? –
@BrianKent,我想做'mahStuff'!主要是保證有關列表...斷言屬性... whatnot。爲了*擴展*該語句,'MahThing' *是一個'List',只是一個包含附加功能的列表。 –