Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra come iniziare a usare F# in qualsiasi sistema operativo (Windows, macOS o Linux) con l'interfaccia della riga di comando di .NET. Viene eseguita la compilazione di una soluzione multiprogetto con una libreria di classi chiamata da un'applicazione console.
Prerequisiti
Per iniziare, è necessario installare la versione più recente di .NET SDK.
Questo articolo presuppone che si sappia come usare una riga di comando e avere un editor di testo preferito. Se non lo si usa già, Visual Studio Code è un'ottima opzione come editor di testo per F#.
Creare una semplice soluzione multiprogetto
Aprire un prompt dei comandi o un terminale e usare il comando dotnet new per creare un nuovo file di soluzione denominato FSharpSample:
dotnet new sln -o FSharpSample
La struttura di directory seguente viene generata dopo l'esecuzione del comando precedente:
FSharpSample
├── FSharpSample.sln
Crea una libreria di classi
Modificare le directory in FSharpSample.
Usare il dotnet new comando per creare un progetto di libreria di classi nella cartella src denominata Library.
dotnet new classlib -lang "F#" -o src/Library
La struttura di directory seguente viene generata dopo l'esecuzione del comando precedente:
└── FSharpSample
├── FSharpSample.sln
└── src
└── Library
├── Library.fs
└── Library.fsproj
Sostituire il contenuto di Library.fs con il codice seguente:
module Library
open System.Text.Json
let getJson value =
let json = JsonSerializer.Serialize(value)
value, json
Aggiungere il Library progetto alla FSharpSample soluzione usando il comando dotnet sln add . Questo comando aggiunge il progetto al file di soluzione in modo che la soluzione possa tenere traccia e compilarla:
dotnet sln add src/Library/Library.fsproj
Eseguire dotnet build per compilare il progetto. Le dipendenze non risolte verranno ripristinate durante il processo di compilazione.
Scrivere un'applicazione console che utilizza la libreria di classi
Usare il dotnet new comando per creare un'applicazione console nella cartella src denominata App.
dotnet new console -lang "F#" -o src/App
La struttura di directory seguente viene generata dopo l'esecuzione del comando precedente:
└── FSharpSample
├── FSharpSample.sln
└── src
├── App
│ ├── App.fsproj
│ ├── Program.fs
└── Library
├── Library.fs
└── Library.fsproj
Sostituire il contenuto del file Program.fs con il codice seguente:
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
Aggiungere un riferimento al Library progetto usando dotnet reference add. Questo comando aggiunge un <ProjectReference> elemento al file App.fsproj, che indica al compilatore che il progetto App dipende dal progetto Libreria:
dotnet add src/App/App.fsproj reference src/Library/Library.fsproj
Il comando precedente aggiunge il codice XML seguente al file App.fsproj:
<ItemGroup>
<ProjectReference Include="..\Library\Library.fsproj" />
</ItemGroup>
Suggerimento
Se si ignora questo passaggio e si tenta di compilare il progetto app, verrà visualizzato un errore di compilazione perché il Library modulo non verrà trovato. In questo caso, è possibile eseguire il dotnet add reference comando o aggiungere manualmente l'elemento <ProjectReference> illustrato sopra al file App.fsproj.
Aggiungere il App progetto alla FSharpSample soluzione usando il dotnet sln add comando :
dotnet sln add src/App/App.fsproj
Ripristinare le dipendenze NuGet con dotnet restore ed eseguire dotnet build per compilare il progetto.
Cambia directory nel progetto console src/App ed esegui il progetto passando Hello World come argomenti:
cd src/App
dotnet run Hello World
Dovresti vedere i seguenti risultati:
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}
Passaggi successivi
Vedere quindi il tour di F# per altre informazioni sulle diverse funzionalità di F#.