Je travaille sur un cours Scala de Coursera et j'ai quelques problèmes avec les classes abstraites. Ici j'essaye d'accéder aux champs des classes de cas de la classe abstraite CodeTree, mais le compilateur se plaint que ces champs n'appartiennent pas à la classe CodeTree elle-même. Je penserais que l'appariement des motifs prendrait soin de cela, mais apparemment, ce n'est pas le cas. De l'aide?Scala abstract classes
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)
}
Génial, cela fonctionne. Merci. – dsaxton
J'ai ajouté quelques liens et une petite explication de ce qui se passe. Je sais que Scala peut être étrange au début. :) –