Начало работы с F# с помощью интерфейса командной строки .NET

В этой статье описывается, как приступить к работе с F# в любой операционной системе (Windows, macOS или Linux) с помощью .NET CLI. Он проходит через создание решения с несколькими проектами с помощью библиотеки классов, вызываемой консольным приложением.

Необходимые компоненты

Чтобы начать, необходимо установить последний пакет SDK для .NET.

В этой статье предполагается, что вы знаете, как использовать командную строку и иметь предпочтительный текстовый редактор. Если вы еще не используете его, Visual Studio Code является отличным вариантом в качестве текстового редактора для F#.

Создание простого решения для нескольких проектов

Откройте командную строку или терминал и используйте команду dotnet new, чтобы создать новый файл решения:FSharpSample

dotnet new sln -o FSharpSample

Следующая структура каталогов создается после выполнения предыдущей команды:

FSharpSample
    ├── FSharpSample.sln

Запись библиотеки классов

Измените каталоги на FSharpSample.

dotnet new Используйте команду для создания проекта библиотеки классов в папке src с именем Library.

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

Добавьте проект в LibraryFSharpSample решение с помощью команды dotnet sln add :

dotnet sln add src/Library/Library.fsproj

Выполните сборку dotnet build проекта. При сборке будут восстановлены неразрешенные зависимости.

Создание консольного приложения, использующее библиотеку классов

dotnet new Используйте команду для создания консольного приложения в папке src с именем App.

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

Добавьте ссылку на Library проект с помощью dotnet add reference.

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

Добавьте проект в AppFSharpSample решение с помощью dotnet sln add команды:

dotnet sln add src/App/App.fsproj

Восстановите зависимости NuGet и dotnet restore запустите 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#.