与在apply时间内使用大型match块相比,使用PartialFunction的orElse效率是高还是低?
要说明该问题,请执行以下操作:
val pf = { case "a" => "A"} orElse
{ case "b" => "B" } orElse
{ case "c" => "C" } ...或多或少比…更有效:
val pf = { case "a" => "A"
case "b" => "B"
case "c" => "C"
...
}在应用程序期间,将值设置为pf
pf(x)发布于 2012-02-28 15:25:13
请参阅unfiltered的作者提供的此detailed analysis。基本上,它的效率较低。我相信在博客帖子发布后不久,some work已经在主干中解决了这个问题。
发布于 2012-02-28 22:25:35
第二种情况的效率不可能低于第一种情况,因为编译器可以直接将其转换为第一种情况(实际上,这与虚拟模式匹配器所做的工作并不遥远)。
因此,如果你有选择,第二种情况总是更安全的选择。
https://stackoverflow.com/questions/9477533
复制相似问题