Я изучаю Scala и просто знакомлюсь с синтаксисом. Я вижу, что Future.apply
принимает функцию за работу.
Отлично работает следующее:
val future = Future { doWork(1) }
Однако только для экспериментов я попробовал другие способы сделать это, но ни один из них не работает должным образом.
val future = Future(() => doWork(1))
Это приводит к тому, что лямбда становится значением завершения будущего, а не возвращаемым значением doWork(1)
.
val work: () => Int = () => doWork(index)
val future = Future(work)
Та же ситуация здесь. Может ли кто-нибудь объяснить, почему передача функции в качестве выполняемой работы вместо этого приводит к тому, что функция фактически становится возвращаемым значением выполняемой работы. Также, как бы я пошел по этому поводу. Спасибо!