collectFirst:应用具有多个 case 子句的偏函数

collectFirst: Applying partial function with multiple case clauses

所以我定义了一个部分函数用于集合中的 collectFirst 方法:

myList.collectFirst{
  case A(_,_,_) => ....
  case B(_,_,_) => ....
  case C(_,_,_) => ....
}

如果myList包含A,B,C,那么会执行哪种情况?

collectFirst 的文档说明如下:

Finds the first element of the collection for which the given partial function is defined, and applies the partial function to it.

让我们假设 val myList = List(A(...), B(...), C(...))。 在这种情况下 case A(_, _, _) 将被执行。 如果我们有 val myList = List(B(...), A(...), C(...)) 那么第二种情况将被执行,因为 B(...) 是满足部分功能的第一个元素。