scala中递归函数的类型不匹配错误

Type mismatch error in recursive function in scala

我有以下用 Scala 编写的递归调用:

  def calculateFingerPrint(t: Tree):Int =
{
  if(t.isInstanceOf[Leaf])
    calculateIDS(t).hashCode()

  else if(t.isInstanceOf[OtherNode])
    //error --> calculateIDS(t).concat(calculateFingerPrint(t.children.head).toString()).hashCode 

}

 def calculateIDS(t: Tree):String= {
//returns some string
}

注释行抛出类型不匹配错误并说 Found: Anyval Required:Int

谁能告诉我这是什么问题?

如果 t 不是 LeafOtherNode

,您需要最后的 else 子句来 return 默认值

match 表达式比使用 isInstanceOf 调用更好。