我是Scala的新手。我如何在類中實現方法?在Scala類中實現可變方法
我已經定義了一個特徵,看起來是這樣的:
trait Node extends Component{
val label:Int
val inputEdges:List[Edge] = List[Edge]()
val outputEdges:List[Edge] = List[Edge]()
def addInputEdge(edge:Edge) = {
inputEdges :+ edge
this
}
def addOutputEdge(edge:Edge) = {
outputEdges :+ edge
this
}
}
case class SomeNode(label:Int) extends Node
我需要幫助瞭解如何實現這兩種方法。
每個擴展Node的類都必須在構造函數中提供一個標籤,但應該繼承兩個方法和兩個列表。此外,這些方法應該返回節點的一個新對象,並將邊緣添加到其中一個列表中。現在,如果我調用其中一個方法,我會得到同一個對象,並且沒有邊添加到列表中的一個。這是有道理的,但我不知道如何添加一個邊緣,當兩個列表是不可變的。
我真的不想在構造函數中傳遞列表,然後我將得到具有許多參數的構造函數。
感謝,然而,這似乎比有一個大的構造函數(atlest我)更加混亂。我不喜歡一個大的構造函數,因爲他們很難理解我認爲什麼是類。我只是尋找一種簡單而優雅的解決方案,在OOP語言中這種方法是可變的。 –