Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

チェック・実行・テスト

💡 お知らせ: このドキュメントはAIによって翻訳されています。表現に違和感がある場合は、原文(英語)を参照するか、翻訳にご協力ください。

プロジェクトに取り組んでいる間、主に使うコマンドは 3 つです。コード生成なしでプロジェクトをコンパイルしてエラーを報告する check、プロジェクトをコンパイルして main 関数を実行する run、そして @Test が付いたすべての関数を実行する test です。

エラーのチェック

check コマンドを使うと、プロジェクトにコンパイルエラーがないかチェックできます:

Found 'flix.toml'. Checking dependencies...
Resolving Flix dependencies...
Downloading Flix dependencies...
Resolving Maven dependencies...
  Running Maven dependency resolver.
Downloading external jar dependencies...
Dependency resolution completed.

Flix はすべてのコマンドを、プロジェクトの依存関係の解決から開始します。これがこの出力内容です。私たちのプロジェクトにはまだ依存関係がないため、ダウンロードするものはありません。以降の例では、これらの行は省略します。

プロジェクトがコンパイルできない場合、Flix は代わりにエラーを報告します。例えば、整数に対して and を使う関数を追加すると:

def isPositive(x: Int32): Bool = x and true

check は次のように報告します:

-- Type Error [E7796] -------------------------------------------- src/Main.flix

>> Unexpected type: expected 'Bool', found 'Int32'.

5 | def isPositive(x: Int32): Bool = x and true
                                     ^
                                     unexpected type

開発中は、build コマンドよりも check コマンドの方が望ましいです。check はコード生成を省略するため、大幅に高速だからです。

プログラムの実行

run コマンドを使うと、プロジェクトをコンパイルして実行できます。事前に何かをビルドしておく必要はありません:

Hello World!

run コマンドは、プロジェクトの main 関数を実行します。main がどのようなものかについては、main 関数 を参照してください。

テストの実行

test コマンドを使うと、テストを実行できます。Flix は @Test が付いたすべての関数を収集して実行し、結果のサマリーを表示します:

Running 1 tests...

   PASS  test01 1.3ms

Passed: 1, Failed: 0. Skipped: 0. Elapsed: 3.8ms.

テストの書き方については、テストフレームワーク を参照してください。

ドキュメントの生成

doc コマンドを使うと、プロジェクトの API ドキュメントを生成できます。Flix はドキュメントを build/doc ディレクトリに書き出します:

build
└── doc
    ├── favicon.png
    ├── index.html
    ├── index.js
    └── styles.css

このドキュメントは、build/doc/index.html をブラウザで開くことで読めます。

ソースコードの整形

format コマンドを使うと、プロジェクトのソースコードを整形できます。このコマンドは、src と test 内のすべてのファイルをその場で書き換えます。src/Main.flix が次のような内容であるとき:

def   main( ) : Unit \ IO =
  println(  "Hello World!" )

def add(x:Int32,y:Int32):Int32=x+y

format を実行した後は次のようになります:

def main(): Unit \ IO =
    println("Hello World!")

def add(x: Int32, y: Int32): Int32 = x + y

プロジェクトがコンパイルできない場合、format はエラーを報告し、ファイルには手を加えません。

統計情報の表示

stat コマンドを使うと、プロジェクトに関する統計情報を表示できます:

<unnamed> 0.1.0

2 files, 5 lines: 4 code, 1 comment, 0 blank.
0 modules, 2 defs: 0 pure, 2 effectful, 0 effect polymorphic.
0 types, 0 traits, 0 instances, 0 effects.

見出しの部分には、そのパッケージが公開されるリポジトリの名前(何も宣言されていない場合は <unnamed>)と、それに続くバージョンが表示されます。

プログラムが期待どおりに動くようになったら、いよいよ出荷できるものをビルドする準備が整います。