条件是一个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)
。