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 strutturare un'applicazione console F#.
Punto di ingresso implicito
Per impostazione predefinita, le applicazioni F# usano un punto di ingresso implicito. Ad esempio, per il programma seguente, il punto di ingresso è implicito e, quando il programma viene eseguito, il codice viene eseguito dalla prima riga all'ultimo:
open System
let printSomeText() =
let text = "Hello" + "World"
printfn $"text = {text}"
let showCommandLineArgs() =
for arg in Environment.GetCommandLineArgs() do
printfn $"arg = {arg}"
printSomeText()
showCommandLineArgs()
exit 100
Punto di ingresso esplicito
Se si vuole, è possibile usare un punto di ingresso esplicito. Questa operazione viene in genere eseguita per uno o tutti i motivi seguenti:
Si preferisce accedere agli argomenti della riga di comando tramite un argomento passato a una funzione anziché usare
System.Environment.GetCommandLineArgs().Si vuole restituire un codice di errore tramite un risultato restituito, anziché usare
exit.Si vuole eseguire unit test del codice nell'ultimo file dell'applicazione console.
Nell'esempio seguente viene illustrata una funzione semplice main con un punto di ingresso esplicito.
[<EntryPoint>]
let main args =
printfn "Arguments passed to function : %A" args
// Return 0. This indicates success.
0
Quando questo codice viene eseguito con la riga EntryPoint.exe 1 2 3di comando , l'output è il seguente.
Arguments passed to function : [|"1"; "2"; "3"|]
Sintassi
[<EntryPoint>]
let-function-binding
Osservazioni:
Nella sintassi precedente, let-function-binding è la definizione di una funzione in un'associazione let .
Il punto di ingresso a un programma compilato come file eseguibile è la posizione in cui viene avviata formalmente l'esecuzione. È possibile specificare il punto di ingresso di un'applicazione F# applicando l'attributo EntryPoint alla funzione del main programma. Questa funzione (creata tramite un'associazione let ) deve essere l'ultima funzione nell'ultimo file compilato. L'ultimo file compilato è l'ultimo file nel progetto o l'ultimo file passato alla riga di comando.
La funzione del punto di ingresso ha il tipo string array -> int. Gli argomenti forniti nella riga di comando vengono passati alla main funzione nella matrice di stringhe. Il primo elemento della matrice è il primo argomento; il nome del file eseguibile non è incluso nella matrice, come in altri linguaggi. Il valore restituito viene usato come codice di uscita per il processo. Zero indica in genere l'esito positivo; valori diversi da zero indicano un errore. Non esiste alcuna convenzione per il significato specifico dei codici restituiti diversi da zero; i significati dei codici restituiti sono specifici dell'applicazione.