作者:董鹏飞80 | 来源:互联网 | 2023-02-05 12:36
我知道scala by-name参数是如何工作的:https://tpolecat.github.io/2014/06/26/call-by-name.html
我在一段非常敏感的代码中使用它,它可以运行很多.我的问题是:是否存在任何性能或内存缺陷?例如,我知道使用lazy val有它的缺点:Scala的懒惰val的(隐藏)成本是多少?
有关类名参数的类似内容吗?它们是如何在下面实现的?
请注意我不会在懒惰的情况下使用它进行缓存.所以我不会有上述问题.我只需要知道它不是懒惰本身.
谢谢
1> Jasper-M..:
通过名称参数实现为.的实例Function1
.所以它们也具有相同的性能特征.
使用by name参数调用方法具有创建实例的开销,Function1
并且使用by name参数具有在对象apply
上调用方法的开销Function1
.