この記事では、.NET CLI を使用して任意のオペレーティング システム (Windows、macOS、または Linux) で F# の使用を開始する方法について説明します。 コンソール アプリケーションによって呼び出されるクラス ライブラリを使用してマルチプロジェクト ソリューションを構築します。
前提条件
開始するには、最新の .NET SDK をインストールする必要があります。
この記事では、コマンド ラインを使用する方法を知っており、推奨されるテキスト エディターがあることを前提としています。 まだ使用していない場合、 Visual Studio Code は F# のテキスト エディターとして最適なオプションです。
単純なマルチプロジェクト ソリューションを構築する
コマンド プロンプト/ターミナルを開き、 dotnet new コマンドを使用して、 FSharpSampleという名前の新しいソリューション ファイルを作成します。
dotnet new sln -o FSharpSample
次のディレクトリ構造は、前のコマンドを実行した後に生成されます。
FSharpSample
├── FSharpSample.sln
クラス ライブラリを記述する
ディレクトリを FSharpSample に変更します。
dotnet new コマンドを使用して、Library という名前の src フォルダーにクラス ライブラリ プロジェクトを作成します。
dotnet new classlib -lang "F#" -o src/Library
次のディレクトリ構造は、前のコマンドを実行した後に生成されます。
└── FSharpSample
├── FSharpSample.sln
└── src
└── Library
├── Library.fs
└── Library.fsproj
Library.fs の内容を次のコードに置き換えます。
module Library
open System.Text.Json
let getJson value =
let json = JsonSerializer.Serialize(value)
value, json
Library add コマンドを使用して、FSharpSample プロジェクトを ソリューションに追加します。 このコマンドは、ソリューションがプロジェクトを追跡してビルドできるように、ソリューション ファイルにプロジェクトを追加します。
dotnet sln add src/Library/Library.fsproj
dotnet buildを実行してプロジェクトをビルドします。 ビルド時に未解決の依存関係が復元されます。
クラス ライブラリを使用するコンソール アプリケーションを作成する
dotnet new コマンドを使用して、App という名前の src フォルダーにコンソール アプリケーションを作成します。
dotnet new console -lang "F#" -o src/App
次のディレクトリ構造は、前のコマンドを実行した後に生成されます。
└── FSharpSample
├── FSharpSample.sln
└── src
├── App
│ ├── App.fsproj
│ ├── Program.fs
└── Library
├── Library.fs
└── Library.fsproj
Program.fs ファイルの内容を次のコードに置き換えます。
open System
open Library
[<EntryPoint>]
let main args =
printfn "Nice command-line arguments! Here's what System.Text.Json has to say about them:"
let value, json = getJson {| args=args; year=System.DateTime.Now.Year |}
printfn $"Input: %0A{value}"
printfn $"Output: %s{json}"
0 // return an integer exit code
dotnet reference add を使用して、 Library プロジェクト への参照を追加します。 このコマンドは、app.fsproj ファイルに <ProjectReference> 要素を追加します。これにより、App プロジェクトがライブラリ プロジェクトに依存していることをコンパイラに通知します。
dotnet add src/App/App.fsproj reference src/Library/Library.fsproj
前のコマンドは、App.fsproj ファイルに次の XML を追加します。
<ItemGroup>
<ProjectReference Include="..\Library\Library.fsproj" />
</ItemGroup>
ヒント
この手順をスキップしてアプリ プロジェクトをビルドしようとすると、 Library モジュールが見つからないため、コンパイル エラーが発生します。 この場合は、 dotnet add reference コマンドを実行するか、上記の <ProjectReference> 要素を App.fsproj ファイルに手動で追加できます。
App コマンドを使用して、FSharpSample ソリューションにdotnet sln add プロジェクトを追加します。
dotnet sln add src/App/App.fsproj
dotnet restoreを使用して NuGet の依存関係を復元し、dotnet buildを実行してプロジェクトをビルドします。
src/App コンソール プロジェクトにディレクトリを変更し、Hello Worldを引数として渡してプロジェクトを実行します。
cd src/App
dotnet run Hello World
次のような結果が表示されます。
Nice command-line arguments! Here's what System.Text.Json has to say about them:
Input: { args = [|"Hello"; "World"|] year = 2021 }
Output: {"args":["Hello","World"],"year":2021}
次のステップ
次に、 F# のツアー を参照して、さまざまな F# 機能の詳細を確認してください。
.NET