【问题标题】:Type Mismatch in Scala CodeScala 代码中的类型不匹配
【发布时间】:2016-12-01 04:35:21
【问题描述】:

这是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
      }

谁能告诉我为什么会出现这个错误?

【问题讨论】:

    标签: scala functional-programming parentheses


    【解决方案1】:

    代码充满了错误。

    您返回Nil,而您的函数返回类型为Boolean。

    您定义 else 的条件不带 if。

    你使用了模棱两可的条件chars.tail.isEmpty!= 0。

    修复这些问题并重新发布您的代码。还有更多错误,但目前很难判断您是要递归调用并返回空列表还是在某些条件下返回。如果你还有问题,我会适当更新我的答案。

    【讨论】:

      猜你喜欢
      • 2018-08-13
      • 2012-08-27
      • 1970-01-01
      • 1970-01-01
      • 2019-04-15
      • 1970-01-01
      • 1970-01-01
      • 2016-07-03
      • 2020-05-24
      相关资源
      最近更新 更多