Partilhar via


Introdução ao F# com a CLI do .NET

Este artigo aborda como você pode começar a usar o F# em qualquer sistema operacional (Windows, macOS ou Linux) com a CLI do .NET. Ele passa pela criação de uma solução multiprojeto com uma biblioteca de classes que é chamada por um aplicativo de console.

Pré-requisitos

Para começar, você deve instalar o SDK .NET mais recente.

Este artigo pressupõe que você saiba como usar uma linha de comando e tenha um editor de texto preferido. Se você ainda não o usa, o Visual Studio Code é uma ótima opção como editor de texto para F#.

Crie uma solução multiprojeto simples

Abra um prompt de comando/terminal e use o comando dotnet new para criar um novo arquivo de solução chamado FSharpSample:

dotnet new sln -o FSharpSample

A seguinte estrutura de diretórios é produzida após a execução do comando anterior:

FSharpSample
    ├── FSharpSample.sln

Escrever uma biblioteca de classes

Altere os diretórios para FSharpSample.

Use o dotnet new comando para criar um projeto de biblioteca de classes na pasta src chamada Library.

dotnet new classlib -lang "F#" -o src/Library

A seguinte estrutura de diretórios é produzida após a execução do comando anterior:

└── FSharpSample
    ├── FSharpSample.sln
    └── src
        └── Library
            ├── Library.fs
            └── Library.fsproj

Substitua o conteúdo do Library.fs pelo seguinte código:

module Library

open System.Text.Json

let getJson value =
    let json = JsonSerializer.Serialize(value)
    value, json

Adicione o Library projeto à FSharpSample solução usando o comando dotnet sln add :

dotnet sln add src/Library/Library.fsproj

Execute dotnet build para construir o projeto. As dependências não resolvidas serão restauradas durante a construção.

Escrever um aplicativo de console que consuma a biblioteca de classes

Use o dotnet new comando para criar um aplicativo de console na pasta src chamada App.

dotnet new console -lang "F#" -o src/App

A seguinte estrutura de diretórios é produzida após a execução do comando anterior:

└── FSharpSample
    ├── FSharpSample.sln
    └── src
        ├── App
        │   ├── App.fsproj
        │   ├── Program.fs
        └── Library
            ├── Library.fs
            └── Library.fsproj

Substitua o conteúdo do ficheiro Program.fs pelo código seguinte:

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

Adicione uma referência ao Library projeto usando dotnet add reference.

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

Adicione o App projeto à FSharpSample solução usando o dotnet sln add comando:

dotnet sln add src/App/App.fsproj

Restaure as dependências do NuGet e dotnet restore execute dotnet build para criar o projeto.

Altere o diretório para o projeto de src/App console e execute o projeto passando Hello World como argumentos:

cd src/App
dotnet run Hello World

Deverá ver os seguintes resultados:

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}

Próximos passos

Em seguida, confira o Tour do F# para saber mais sobre os diferentes recursos do F#.