Scala部分功能组成表现

时间:2015-01-07 17:51:11

标签: scala partial-functions

定义为

的部分函数的性能是否有任何差异
val matches = {
   case Match(x,y) => ...
   case AnotherMatch(x,y,z) => ...
   case x:YetAnother => ...
}

和一个定义如下?

val match1 = {
   case Match(x,y) => ... 
}
val match2 = {
   case AnotherMatch(x,y,z) => ...
}
val match3 = {
   case x:YetAnother => ...
}
val matches = match1 orElse match2 orElse match3

1 个答案:

答案 0 :(得分:1)

如果匹配

,差异大约是2倍
Some(x: Int) if x > 0 => x
Some(x: Int) if x < 0 => -x
None => 0

因此,它在紧密循环中可能很重要,但通常不会。