Scala:找到类型不匹配,需要单位:布尔值

use*_*318 4 scala functional-testing

我一直试图运行这段代码,但不知何故已经出现'单位不匹配,布尔预期错误'.我已经在Stackoverflow上遇到了各种问题,但没有找到任何具体的问题来回答我的问题.

  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);
                }
            }
    }     
  } 
Run Code Online (Sandbox Code Playgroud)

Lui*_*hys 8

由分隔的代码块{}计算其中的最后一个表达式.这里,你的最后一个表达式是一个定义(def Count),它的计算结果为Unit.因此,将您期望评估的表达式移动到最后.