【发布时间】:2014-04-16 20:48:49
【问题描述】:
以下代码无法编译。希望在隐式类中有一个按名称调用的构造函数参数,如此处所示,
def f(n: Int) = (1 to n) product
implicit class RichElapsed[A](val f: => A) extends AnyVal {
def elapsed(): (A, Double) = {
val start = System.nanoTime()
val res = f
val end = System.nanoTime()
(res, (end-start)/1e6)
}
}
打电话的地方
val (res, time) = f(3).elapsed
res: Int = 6
time: Double = 123.0
REPL报这个错误,
<console>:1: error: `val' parameters may not be call-by-name
implicit class RichElapsed[A](val f: => A) extends AnyVal {
因此问RichElapsed类如何重构。
提前致谢。
【问题讨论】:
标签: scala implicit callbyname