Scala部分函数合成性能
定义为的部分函数的性能是否有任何差异Scala部分函数合成性能,scala,partial-functions,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 m
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
如果匹配项为
Some(x: Int) if x > 0 => x
Some(x: Int) if x < 0 => -x
None => 0
Some(x:Int)如果x>0=>x
如果x<0=>-x,则为一些(x:Int)
无=>0
因此,在一个紧密的循环中,它可能很重要,但通常不会。但是,在大多数情况下,它可能可以忽略不计,如果后一种方法以任何方式使您的代码更可读或更易于维护,那么您应该使用它,并且只有在您确认性能是应用程序中的一个真正问题时才进行优化。