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(...)
是满足部分功能的第一个元素。
所以我定义了一个部分函数用于集合中的 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(...)
是满足部分功能的第一个元素。