【发布时间】:2019-06-19 11:06:31
【问题描述】:
我正在学习 Scala 并且刚刚熟悉语法。我看到Future.apply 将函数作为工作。
以下工作完美:
val future = Future { doWork(1) }
但是,我只是为了试验而尝试了其他一些方法,但都无法正常工作。
val future = Future(() => doWork(1))
这导致 lambda 成为未来的完成值,而不是 doWork(1) 的返回值。
val work: () => Int = () => doWork(index)
val future = Future(work)
这里的情况相同。有人可以解释为什么将函数作为要完成的工作传递反而导致函数实际上成为正在完成的工作的返回值。另外我该怎么做。谢谢!
【问题讨论】: