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
不是 Leaf
或 OtherNode
。
,您需要最后的 else
子句来 return 默认值
match
表达式比使用 isInstanceOf
调用更好。
我有以下用 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
不是 Leaf
或 OtherNode
。
else
子句来 return 默认值
match
表达式比使用 isInstanceOf
调用更好。