我是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语言中这种方法是可变的。 –