6

私はscalaが初めてで、現在ワークシートで練習しています。インポートを追加したにもかかわらず、ワークシートで @tailrec が機能しないことに気付きました

import scala.annotation.tailrec

これは私が使用しているscalaのバージョンです

Scala code runner version 2.10.2 -- Copyright 2002-2013, LAMP/EPFL

それを機能させる方法はありますか?ありがとう

4

3 に答える 3

4

注釈がどのように機能するかを間違えないように注意してください。@tailrecこれは、関数がコンパイラによって「末尾再帰的な方法」で最適化されることを強制するものではありません (可能であれば、コンパイラは常にその最適化を行います)。

むしろ、コンパイラに「この関数は末尾再帰の方法で正常に記述されていると思います。そのように最適化できない場合は教えてください」と伝えるために使用できる単なるマーカーです。

つまり、末尾再帰を意図した関数を正しく記述したことを確認したい場合に使用し、間違っている場合はコンパイラーが指摘できるようにします。

それはあなたが見ているものに意味がありますか?注釈を使用したサンプルコードを見ずに、これ以上有用なことは言えません。

于 2013-09-22T13:55:53.310 に答える
1

最初に、注釈を付けたい関数を定義してスタブし、次に戻って注釈を追加します。

于 2013-09-21T17:54:21.210 に答える