Dart 是否具有尾调用优化 (TCO) 功能?

Does Dart feature Tail Call Optimization (TCO)?

我想在 Dart 中尝试一些来自函数式编程的算法和模式,但其中很多都严重依赖递归,如果没有 Tail Call Optimization (TCO),递归可能会导致严重的内存泄漏,这不是强制性的在实现语言时。

Dart 团队或文档中是否有关于此主题的官方声明?我可能可以通过使用 Dart 的开发工具和分析来确定该语言当前是否存在这种情况,但是这样我将永远无法了解 Dart 团队对该主题的意图,因此 raison d 'être 这个问题。

Dart 不支持尾调用优化。目前没有添加它的计划。

主要原因是它是您需要依赖才能使用的功能,否则您会得到非常低效的代码,可能会溢出堆栈,并且由于JavaScript目前不支持尾调用优化,该特性无法高效编译为JavaScript.