我正在尝试在节点与其父节点之间的图中强制执行类型关系。我有以下内容无法在 child.parents ::= this 上编译。欢迎任何评论
trait TGraphNode {
type NodeType <: TGraphNode
var id = -1
var parents = List[NodeType]()
var children = List[TGraphNode]()
def addChild(child: NodeType) {
children ::= child
child.parents ::= this
}
override def toString = "node-"+id+"->"+children
}
抱歉 - 下次会添加编译错误。我正在尝试实现以下目标:假设我有 2 个类型为 F 和 C 的节点 - 我想通过构造强制 C 只能将 F 作为父级,但是,反过来我不在乎。F可以有C,D..作为孩子。所以我想捕捉到 ParentType 可以在实现特征的类中被覆盖。
class F extends TGraphNode ...
class B extends TGraphNode {
type ParentType = F
}
谢谢