注釈
💡 お知らせ: このドキュメントはAIによって翻訳されています。表現に違和感がある場合は、原文(英語)を参照するか、翻訳にご協力ください。
Flix は、限られた組み込みの注釈(Annotation)の集合をサポートしています。
例えば、@Test 注釈は関数をテストとしてマークします。テストフレームワークはそのような関数をすべて実行し、合格したかどうかを報告します:
@Test
def testSum01(): Unit \ Assert =
Assert.assertEq(expected = 6, sum(1 :: 2 :: 3 :: Nil, 0))
もう一つの例として、@Tailrec 注釈は、関数内のすべての再帰呼び出しが末尾呼び出しであることをコンパイラに検証させます。下記の sum 関数は、再帰呼び出しが関数の最後に行われる処理であるため、このチェックに合格します:
@Tailrec
def sum(l: List[Int32], acc: Int32): Int32 = match l {
case Nil => acc
case x :: xs => sum(xs, acc + x)
}
Flix には、次の組み込み注釈があります:
| 注釈 | 意味 |
|---|---|
@Test | 関数をテストとして実行します。テストフレームワークを参照してください。 |
@Skip | @Test 関数をスキップします。テストは実行されず、スキップとして報告されます。 |
@DefaultHandler | エフェクトのデフォルトハンドラであることを示します。デフォルトハンドラを参照してください。 |
@Tailrec | 自己再帰呼び出しがすべて末尾呼び出しであることを検証します。末尾再帰を参照してください。 |
@Terminates | 関数が構造的再帰であることを検証します。停止性検査を参照してください。 |
@Inline | コンパイラに関数を常にインライン化させます。 |
@DontInline | コンパイラに関数を決してインライン化させません。 |
@Deprecated | その宣言が非推奨であることを文書化します。 |
@Experimental | その宣言が予告なく変更または削除される可能性があることを文書化します。 |
@Lazy | その関数が遅延評価を使用することを文書化します。 |
@LazyWhenPure | 純粋な関数が与えられた場合に遅延評価を使用することを文書化します。純粋性リフレクションを参照してください。 |
@Parallel | その関数が並列評価を使用することを文書化します。 |
@ParallelWhenPure | 純粋な関数が与えられた場合に並列評価を使用することを文書化します。純粋性リフレクションを参照してください。 |
最後の6つの注釈はドキュメント用です。これらは API ドキュメントやエディタ上のヒントとして表示されますが、コンパイラが関数をどのように変換するかには影響しません。
注意: Flix には
@Override注釈はありません。トレイトのデフォルト実装を上書きするインスタンスは、代わりにredefキーワードで関数をマークします。