Konzolové aplikace

V tomto článku se dozvíte, jak strukturovat konzolovou aplikaci jazyka F#.

Implicitní vstupní bod

Ve výchozím nastavení používají aplikace jazyka F# implicitní vstupní bod. Například pro následující program je vstupní bod implicitní a při spuštění programu se kód spustí z prvního řádku na poslední:

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

Explicitní vstupní bod

Pokud chcete, můžete použít explicitní vstupní bod. Obvykle se to provádí z jednoho nebo všech následujících důvodů:

  • Chcete raději získat přístup k argumentům příkazového řádku prostřednictvím argumentu předaného funkci místo použití System.Environment.GetCommandLineArgs().

  • Chcete vrátit kód chyby prostřednictvím návratového výsledku místo použití exit.

  • Chcete testovat kód v posledním souboru konzolové aplikace.

Následující příklad znázorňuje jednoduchou main funkci s explicitním vstupním bodem.

[<EntryPoint>]
let main args =
    printfn "Arguments passed to function : %A" args
    // Return 0. This indicates success.
    0

Při spuštění tohoto kódu pomocí příkazového řádku EntryPoint.exe 1 2 3je výstup následující.

Arguments passed to function : [|"1"; "2"; "3"|]

Syntaxe

[<EntryPoint>]
let-function-binding

Poznámky

V předchozí syntaxi je let-function-binding definicí funkce v vazbě let .

Vstupním bodem programu, který je zkompilován jako spustitelný soubor, je místo, kde formálně začíná provádění. Vstupní bod aplikace jazyka F# zadáte použitím EntryPoint atributu na funkci programu main . Tato funkce (vytvořená pomocí let vazby) musí být poslední funkcí v posledním zkompilovaném souboru. Poslední zkompilovaný soubor je poslední soubor v projektu nebo poslední soubor, který se předá příkazovému řádku.

Funkce vstupního bodu má typ string array -> int. Argumenty zadané na příkazovém řádku se předávají main funkci v poli řetězců. Prvním prvkem pole je první argument; název spustitelného souboru není součástí pole, protože je v některých jiných jazycích. Návratová hodnota se používá jako ukončovací kód procesu. Nula obvykle značí úspěch; nenulové hodnoty označují chybu. Neexistuje žádná konvence pro zvláštní význam nenulových návratových kódů; významy návratových kódů jsou specifické pro aplikaci.

Viz také