我是 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 的类都必须在构造函数中提供一个标签,但应该继承这两个方法和两个列表。此外,这些方法应返回节点的新对象,并将边缘添加到列表之一。现在,如果我调用其中一种方法,我会得到相同的对象,但没有将边缘添加到列表之一。这是有道理的,但是当两个列表不可变时,我不知道如何添加边。
我真的不想在构造函数中传递列表,因为那样我会得到带有许多参数的构造函数。