我有一个简单的闭包,我希望能够在我的代码中使用它来测量任何其他闭包所需的时间。它看起来像这样:
def benchmark = {name,closure ->
start = System.currentTimeMillis()
ret = closure.call()
now = System.currentTimeMillis() println(name + " took: " + (now - start))
ret
}
它在从同一范围调用时起作用,如下所示:
benchmark('works') { println("Hello, World\n")}
但是当它调用嵌套范围时它似乎不起作用
def nested()
{
benchmark('doesnt_work'){print("hello")}
}
nested()