无法执行嵌套模式匹配



条件是一个Seq[Expression]

val (subqueryPredicates, nonSubqueryPredicates) = condition.partition(
_ match {
case _: InSubquery => true
case _: Not(child: InSubquery) => true
case _ => false
}
)

编译器继续抱怨 类型不匹配,预期表达式 => 布尔值,实际上是表达式 => anyVal

这里的问题是Not(child: Subquery),只要我删除(子:子查询(,投诉就会停止。

我不知道为什么嵌套模式匹配不能在这里执行。以下是Not的定义

case class Not(child: Expression)

谢谢。

模式应该是

case _: Not =>

case Not(child: InSubquery) =>

前者是所谓的类型模式,类型Not,而不是Not(child: InSubquery)

最新更新