【发布时间】:2017-09-10 07:36:13
【问题描述】:
我正在学习 Coursera 的 Scala 课程,但在抽象类方面遇到了一些问题。在这里,我试图从 CodeTree 抽象类的案例类中访问字段,但编译器抱怨这些字段不属于 CodeTree 类本身。我认为模式匹配会解决这个问题,但显然它没有。有什么帮助吗?
abstract class CodeTree
case class Fork(left: CodeTree, right: CodeTree, chars: List[Char], weight: Int) extends CodeTree
case class Leaf(char: Char, weight: Int) extends CodeTree
def weight(tree: CodeTree): Int = tree match {
case Leaf(_, weight) => tree.weight
case Fork(left, right, _, _) => weight(tree.left) + weight(tree.right)
}
【问题讨论】:
标签: scala abstract-class case-class