Scala的名称参数性能有多好?

use*_*676 0 performance scala lazy-evaluation callbyname

我知道scala by-name参数是如何工作的:https://tpolecat.github.io/2014/06/26/call-by-name.html

我在一段非常敏感的代码中使用它,它可以运行很多.我的问题是:是否存在任何性能或内存缺陷?例如,我知道使用lazy val有它的缺点:Scala的懒惰val的(隐藏)成本是多少?

有关类名参数的类似内容吗?它们是如何在下面实现的?

请注意我不会在懒惰的情况下使用它进行缓存.所以我不会有上述问题.我只需要知道它不是懒惰本身.

谢谢

Jas*_*r-M 6

通过名称参数实现为.的实例Function1.所以它们也具有相同的性能特征.

使用by name参数调用方法具有创建实例的开销,Function1并且使用by name参数具有在对象apply上调用方法的开销Function1.