共用方式為


透過 .NET CLI 開始使用 F#

本文涵蓋如何在任何作業系統 (Windows、macOS 或 Linux) 上開始使用 F# 搭配 .NET CLI。 其會使用主控台應用程式所呼叫的類別庫來建置多專案解決方案。

必要條件

首先,您必須安裝最新的 .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

使用 dotnet sln add 命令將 Library 專案新增至 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 add reference 將參考新增至 Library 專案。

dotnet add src/App/App.fsproj reference src/Library/Library.fsproj

使用 dotnet sln add 命令將 App 專案新增至 FSharpSample 解決方案:

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# 功能。