Partilhar via


Aplicações de Consola

Neste artigo, você aprenderá a estruturar um aplicativo de console F#.

Ponto de entrada implícito

Por padrão, os aplicativos F# usam um ponto de entrada implícito. Por exemplo, para o seguinte programa, o ponto de entrada está implícito e, quando o programa é executado, o código é executado da primeira linha à última:

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

Ponto de entrada explícito

Se desejar, você pode usar um ponto de entrada explícito. Isso geralmente é feito por um ou todos os seguintes motivos:

  • Você prefere acessar os argumentos de linha de comando por meio de um argumento passado para uma função, em vez de usar System.Environment.GetCommandLineArgs().

  • Você deseja retornar um código de erro por meio de um resultado de retorno, em vez de usar exito .

  • Você deseja testar o código no último arquivo do seu aplicativo de console.

O exemplo a seguir ilustra uma função simples main com um ponto de entrada explícito.

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

Quando esse código é executado com a linha EntryPoint.exe 1 2 3de comando, a saída é a seguinte.

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

Sintaxe

[<EntryPoint>]
let-function-binding

Observações

Na sintaxe anterior, let-function-binding é a definição de uma função em uma let ligação.

O ponto de entrada para um programa que é compilado como um arquivo executável é onde a execução começa formalmente. Você especifica o ponto de entrada para um aplicativo F# aplicando o EntryPoint atributo à função do main programa. Esta função (criada usando uma let ligação) deve ser a última função no último arquivo compilado. O último arquivo compilado é o último arquivo no projeto ou o último arquivo que é passado para a linha de comando.

A função de ponto de entrada tem o tipo string array -> int. Os argumentos fornecidos na linha de comando são passados para a main função na matriz de cadeias de caracteres. O primeiro elemento da matriz é o primeiro argumento; O nome do arquivo executável não está incluído na matriz, como em alguns outros idiomas. O valor de retorno é usado como o código de saída para o processo. Zero geralmente indica sucesso; valores diferentes de zero indicam um erro. Não existe uma convenção para o significado específico de códigos de retorno diferentes de zero; Os significados dos códigos de retorno são específicos da aplicação.

Ver também