Compartir a través de


Aplicaciones de consola

En este artículo, aprenderá a estructurar una aplicación de consola de F#.

Punto de entrada implícito

De forma predeterminada, las aplicaciones de F# usan un punto de entrada implícito. Por ejemplo, para el siguiente programa, el punto de entrada es implícito y, cuando se ejecuta el programa, el código se ejecuta desde la primera línea hasta la ú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

Punto de entrada explícito

Si lo desea, puede usar un punto de entrada explícito. Esto suele hacerse por una o todas las razones siguientes:

  • Prefiere acceder a los argumentos de la línea de comandos a través de un argumento pasado a una función, en lugar de usar System.Environment.GetCommandLineArgs().

  • Quiere devolver un código de error a través de un resultado devuelto, en lugar de usar exit.

  • Quiere probar unitariamente el código en el último archivo de la aplicación de consola.

En el ejemplo siguiente se muestra una función simple main con un punto de entrada explícito.

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

Cuando este código se ejecuta con la línea EntryPoint.exe 1 2 3de comandos , la salida es la siguiente.

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

Sintaxis

[<EntryPoint>]
let-function-binding

Observaciones

En la sintaxis anterior, let-function-binding es la definición de una función en un let enlace.

El punto de entrada a un programa que se compila como un archivo ejecutable es donde se inicia formalmente la ejecución. Para especificar el punto de entrada en una aplicación de F#, aplique el EntryPoint atributo a la función del main programa. Esta función (creada mediante un let enlace) debe ser la última función del último archivo compilado. El último archivo compilado es el último archivo del proyecto o el último archivo que se pasa a la línea de comandos.

La función de punto de entrada tiene el tipo string array -> int. Los argumentos proporcionados en la línea de comandos se pasan a la main función en la matriz de cadenas. El primer elemento de la matriz es el primer argumento; El nombre del archivo ejecutable no se incluye en la matriz, ya que se encuentra en otros lenguajes. El valor devuelto se usa como código de salida para el proceso. Cero suele indicar que se ha realizado correctamente; los valores que no son ceros indican un error. No existe ninguna convención para el significado específico de códigos de retorno no cero; los significados de los códigos de retorno son específicos de la aplicación.

Consulte también