考慮一個Scala代碼:如何從Future.foreach回調scala中的尾部遞歸?
def myRecursiveFunction(id:string):Unit= {
myAsyncDao.search(id).foreach {response=>
myRecursiveFunction(response.id)
}
}
//myAsyncDao.search returns a Future
//response have id field for further computations
如果我把@tailrec
頂部運算函數,編譯抱怨Recusive call not in tail position
。
它可以被優化爲尾遞歸嗎?
正如你[這個答案]閱讀(http://stackoverflow.com/a/16986416/2522681)您的解決方案不要求尾部遞歸,因爲堆棧不會增長。 –