我知道 scala 名称参数是如何工作的:https://tpolecat.github.io/2014/06/26/call-by-name.html
我在一段经常运行的非常敏感的代码中使用它。 我的问题是:是否存在任何性能或内存缺陷? 例如,我知道使用 lazy val 有其缺点:What's the (hidden) cost of Scala's lazy val?
名字参数有类似的东西吗?它们是如何在底层实现的?
请注意我不会将它与 lazy 一起用于缓存。所以我不会有上述问题。我只需要知道它本身并没有使用 lazy。
谢谢
最佳答案
通过名称参数实现为 Function1
的实例。因此它们也具有相同的性能特征。
使用名称参数调用方法的开销是创建 Function1
的实例,使用名称参数的开销是调用方法 apply
Function1
对象。
关于performance - Scala By-name 参数性能有多好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43685289/