2016-07-27 24 views
-3

ここでは、かっこをスカラでバランスさせるための関数です。このエラーが来て、なぜ誰も私を伝えることができ、私は型の不一致がスカラコード

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 
     } 

を取得していますか?

答えて

4

コードにはエラーがあります。

返品の種類がBooleanであるのに対し、Nilの返品があります。

ifのない条件でelseを定義します。

あいまいな条件chars.tail.isEmpty!= 0を使用しています。

これらを修正し、コードを再投稿してください。より多くのエラーがありますが、現時点では、再帰的に呼び出すか、空のリストに戻るか、何らかの条件で戻るかどうかを判断するのは難しいです。それでも問題が解決しない場合は、適切に回答を更新します。