这是用于平衡scala中的括号的函数。我正在
Error:(36, 10) type mismatch; found : Unit required: Int a=a+1
var a = 0
def balance(chars: List[Char]): Boolean = {
if(chars.isEmpty)
return Nil
{
if (chars.head == ')')
a=a-1
else (chars.head == '(')
a=a+1
}
if (a == -1)
return false
if ((a == 1 || a == 0) && chars.tail.isEmpty!= 0)
balance(chars.tail)
if (a == 0 && chars.tail.isEmpty)
return true
}
有谁能告诉我为什么会出现这个错误?
答案 0 :(得分:4)
代码充满了错误。
您返回Nil
,而您的函数返回类型为Boolean
。
您使用不带else
的条件定义if
。
您使用不明确的条件chars.tail.isEmpty!= 0
。
修复这些并重新发布您的代码。有更多的错误,但目前很难判断你是否想要递归调用并返回空List或在某些条件下返回。如果您还有问题,我会适当更新我的答案。