scala - 类型不匹配和基础类型
问题描述
我的代码抛出了一个我不太理解的错误。该代码应该检查列表中满足谓词的对并将其作为一个集合返回。
[错误] 找到: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)
}
}
解决方案
推荐阅读
- javascript - For Loop Javascript ScrollTo.Document 项目在重构后不起作用
- javascript - 添加区域后上传编辑器图像
- swift - 在 SwiftUI (iPadOS) 中获取移动指针的坐标
- html - 阻止伪元素扩展窗口的高度
- python - 我需要用多线程的 API 调用结果填充一个列表
- jquery - 将 Jquery 中的提示变量传递给 Flask
- python - dtype 为 str 的 numpy 数组不能与自身求和?
- jquery - jquery 对象在第二个`.forEach()` 中返回未定义
- node.js - 无法实现返回值的承诺 - NodeJS
- performance - Julia 类型不稳定性:LinearInterpolations 数组