我有以下代码是工作和打印“的foreach执行”: 泛型与代码块返回单元
val buf = ArrayBuffer[() => Unit]()
def add(o:() => Unit) = buf += o
add(() => print("executed "))
print("foreach ")
buf foreach (_())
我想简化线路3,但它打破在第一行:
val buf = ArrayBuffer[=> Unit]()
def add(o: => Unit) = buf += o
add { print("executed ") }
print("foreach ")
buf foreach (_)
有没有办法做到这一点?
*更正:*按名称参数是_不_懒惰!它们不是在“首次需要时”评估的,它们会在被调用的方法中每次被引用_(动态,而不是静态)评估。 – 2013-03-16 16:38:39
谢谢,我编辑了我的答案 – EECOLOR 2013-03-16 18:14:48