我正在阅读有关Clojure的内容,并在当前版本中发现了有关Java不支持尾部调用的讨论,并且人们抛出了异常来模拟JVM中的尾部调用,无论如何,这听起来像是人们在做一些疯狂的事情。所以这让我想知道C#的尾部调用,同样的问题吗?
最佳答案
CLR代码在某些情况下会尾部调用,但在其他情况下不会尾部调用-它取决于JIT。
另请参见David Broman's blog entry和Shri Borde's one。
C#编译器当前不发出尾部调用IL,但有时JIT仍会这样做。
我正在阅读有关Clojure的内容,并在当前版本中发现了有关Java不支持尾部调用的讨论,并且人们抛出了异常来模拟JVM中的尾部调用,无论如何,这听起来像是人们在做一些疯狂的事情。所以这让我想知道C#的尾部调用,同样的问题吗?
最佳答案
CLR代码在某些情况下会尾部调用,但在其他情况下不会尾部调用-它取决于JIT。
另请参见David Broman's blog entry和Shri Borde's one。
C#编译器当前不发出尾部调用IL,但有时JIT仍会这样做。