1

定义为的偏函数的性能是否有任何差异

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
4

1 回答 1

1

如果匹配项是,则差异约为 2 倍

Some(x: Int) if x > 0 => x
Some(x: Int) if x < 0 => -x
None => 0

所以它在一个紧密的循环中可能很重要,但通常不会。

于 2015-01-07T20:27:47.953 回答