tôi nhận được một lỗi trên dòng:Lỗi trên lớp scala: Phương pháp đệ quy printExpr cần kết quả loại
case Sum(l, r) => printExpr(l); print("+"); printExpr(r)
lỗi là:
phương pháp đệ quy printExpr cần loại quả
Mã này có vẻ ổn với tôi, tôi đang làm gì sai?
abstract class Expr {
case class Num(n: Int) extends Expr
case class Sum(l: Expr , r: Expr) extends Expr
case class Prod(l: Expr, r: Expr) extends Expr
def evalExpr(e: Expr): Int = e match {
case Num(n) => n
case Sum(l, r) => evalExpr(l) + evalExpr(r)
case Prod(l, r) => evalExpr(l) * evalExpr(r)
}
def printExpr(e: Expr) = e match {
case Num(n) => print(" " + n + " ")
case Sum(l, r) => printExpr(l); print("+"); printExpr(r)
case Prod(l, r) => printExpr(l); print("x"); printExpr(r)
}
}