![]() |
1
4
根据Don Syme等人写的“专家F#”的说法,F#进行尾部调用优化。我似乎记得在Eric Lippert的博客上读到C#编译器(任何版本)都没有。如果我错了,请纠正我,埃里克。在所有情况下,当最后一条指令是调用一个方法时,都可以进行尾部调用优化。这通常是方法本身的递归调用,但不需要这样做。可以进行优化,因为可以保证不再需要当前堆栈帧。但是,如果之后必须执行简单的操作,则无法执行优化。
这无法进行尾部调用优化,因为
此版本可以进行尾部调用优化,因为所有参数都经过计算 之前 最后一次调用Fib,调用后不存在要执行的操作,因此可以丢弃当前堆栈帧。 |
![]() |
A B · C#Excel自动调整列避免长文本时出错 4 月前 |
![]() |
pseudodev · 失败的测试仅显示堆栈跟踪,不显示完整日志 4 月前 |
![]() |
CactusCake · if语句中应有分号 5 月前 |
![]() |
Bin4ry · 子文件夹中的应用程序设置 6 月前 |