我有一个关于不相交匹配模式的问题。当每个案例没有踩到其他案例时,匹配模式是不相交的。
def func(list: List[Int]): Int = list match {
case Nil => 0
case x::t if (x < func(t)) => x
case x::t => func(t)
}
我的问题:“if”语句是否也算在内,以检查这些情况是否不相交?因此,如果我们有这样的修补模式,则意味着最后一种情况也包括第二种情况,并且无论如何它都不会脱节。但是如果我将最后一个案例更改为
case x::t if (x >= func(t)) => func(t)
匹配模式会被认为是不相交的吗?