我正在使用 metrics-scala 库,但不明白为什么下面的两个调用的行为完全不同
// method 1
writeTimer.time(() => {
// expensive operation
})
// method 2
writeTimer.time {
// expensive operation
}
在方法 1 的情况下,从不调用昂贵的操作,而在方法 2 中,它是。
writeTimer
是 的一个实例com.yammer.metrics.Timer
,其中time
方法声明为:
/**
* Runs f, recording its duration, and returns the result of f.
*/
def time[A](f: => A): A
我刚刚解决了我的代码中的一个错误,我必须使用方法 2 才能让它工作。