2016-07-27 2 views
-3

Voici la fonction d'équilibrage des parenthèses dans scala. Je reçoisIncompatibilité de type dans Scala Code

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 
     } 

Quelqu'un peut-il me dire pourquoi cette erreur vient?

Répondre

4

Le code est plein d'erreurs.

Vous renvoyez Nil alors que votre fonction a le type de retour Boolean. Vous définissez else avec condition sans if.

Vous utilisez la condition ambiguë chars.tail.isEmpty!= 0.

Corrigez-les et relancez votre code. Il y a plus d'erreurs mais pour l'instant il est difficile de dire si vous voulez appeler récursivement et retourner sur Liste vide ou retourner à certaines conditions. Si vous avez encore des problèmes, je mettrai à jour ma réponse de manière appropriée.