Я следующий код, который работает и печать «Еогеасп выполнена»: Дженерик с кодовым блоком возвращающихся блоком
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 (_)
Есть ли способ сделать это?
* Исправление: * По-имя параметры _not_ ленивым! Они не оцениваются «когда это необходимо», они оцениваются - каждый раз, когда они ссылаются (динамически, а не статически) в вызываемом методе! –
Спасибо, я отредактировал мой ответ – EECOLOR