Punto de entrada (F#)

En este tema se describe el método que se usa para establecer el punto de entrada a un programa en F#.

[<EntryPoint>]
let-function-binding

Comentarios

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

El punto de entrada a un programa compilado como archivo ejecutable es la ubicación donde se inicia formalmente la ejecución.Para especificar el punto de entrada a una aplicación en F#, se aplica el atributo EntryPoint a la función main del programa.Esta función (que se crea mediante un enlace let) 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 del punto de entrada tiene el tipo string array -> int.Los argumentos proporcionados en la línea de comandos se pasan a la función main en la matriz de cadenas.El primer elemento de la matriz es el primer argumento; a diferencia de lo que sucede en otros lenguajes, el nombre del archivo ejecutable no va incluido en la matriz.El valor devuelto se utiliza como código de salida del proceso.El valor cero suele indicar que no se ha producido ningún error; los valores distintos de cero indican un error.No hay ninguna convención para el significado concreto de los códigos devueltos distintos de cero; el significado de los códigos devueltos es específico de la aplicación.

En el ejemplo siguiente, se muestra una función main sencilla.

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

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

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

Punto de entrada implícito

Cuando un programa no tiene un atributo EntryPoint que indique explícitamente el punto de entrada, se usan como punto de entrada los enlaces de nivel superior en el último archivo que se va a compilar.

Vea también

Referencia

Funciones (F#)

Enlaces let (F#)