Scala: se encontró una discrepancia de tipo, unidad requerida: booleano

He estado tratando de ejecutar este código, pero de alguna manera me he topado con la pared con 'desajuste de unidad, error booleano esperado'. He realizado varias preguntas en Stackoverflow pero no he encontrado nada concreto que responda a mi pregunta.

  def balance(chars: List[Char]): Boolean =
  {
    var i = 0;
    var j = 0;

    if (Count(i, j) == 0){
      true
    }
    else{
      false
    }

    def Count(count: Int, Pos: Int): Int = 
    {
            if (Pos == chars.length)
            {
                count
            }
            else
            {
                if (chars(Pos) == '(')
                {
                    Count(count + 1, Pos + 1);
                }
                else
                {
                    Count(count - 1, Pos + 1);
                }
            }
    }     
  } 

preguntado el 29 de septiembre de 13 a las 22:09

1 Respuestas

Un bloque de código delimitado por {} evalúa a la última expresión dentro de él. Aquí, su última expresión es una definición (def Count), que se evalúa como Unit. Así que mueva la expresión que espera que se evalúe hasta el final.

Respondido el 29 de Septiembre de 13 a las 22:09

Por cierto, if (Count(i, j) == 0){ true } else{ false } es lo mismo que Count(i, j) == 0 - diego basch

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.