首页 > 解决方案 > 类型不匹配和基础类型

问题描述

我的代码抛出了一个我不太理解的错误。该代码应该检查列表中满足谓词的对并将其作为一个集合返回。

[错误] 找到:bH.type(具有基础类型 B)[错误] 必需:B

我可以解释为什么会发生这种情况以及如何解决它吗?

object Zad1 {
      type Pred[T] = T => Boolean
    
      def main(args: Array[String]): Unit = {
    
      }
      def znajdz[A,B](alist: List[A],blist: List[B])(pred: Pred[(A,B)]): Set[(A,B)] = {
        @annotation.tailrec
        def assist[A,B](alist: List[A],blist: List[B],tail: Set[(A,B)]): Set[(A,B)] = {
          (alist,blist) match {
            case (aH::aT,bH::bT) =>  (pred((aH,bH))) match {
              case true => assist(aT,bT,Set((aH,bH))++tail)
              case false => assist(aT,bT,tail)
              }
            case _ => tail 
          }
        }
          assist(alist,blist,Set.empty)
      } 
    }

标签: scalatype-mismatch

解决方案


推荐阅读