42

現在のところ、Goプログラミング言語は末尾呼び出しを最適化していますか?そうでない場合は、少なくとも関数の末尾再帰呼び出しをそれ自体に最適化しますか?

4

3 に答える 3

18

インターネットで見つけられるものはすべて、「Go は場合によってはテーラブル再帰をサポートする」こと、およびメーリング リストで伝えられたことです。

特定のケースでは 6g/8g に既に存在し、gccgo にはもう少し一般的に存在します。

現在のところ、すべての場合にコンパイラが末尾呼び出しの最適化を実装することを要求するように言語を変更する予定はありません。末尾呼び出しが必要な場合は、ループまたは goto ステートメントを使用します。

これらのケースを取得するには、オープンなgolang sourceを掘り下げたほうがよいでしょう。

于 2012-08-24T21:05:24.990 に答える
3

そうではありません。メーリングリストのコア開発チームによると、計画もありません。

于 2012-08-24T06:19:02.690 に答える