Árvore de páginas

Una función se identifica por su nombre seguido de un abre y cierra paréntesis, dentro de los cuales habrá una lista de argumentos y parámetros separados con comas, si es necesario. Aunque la función no tenga argumentos o parámetros, es obligatoria la utilización del abre y cierra paréntesis.

 

Como el AdvPL permite que el número de valores pasados a una función sea menor que el número de valores esperados por esta, es necesaria una diferenciación entre estos. Los valores pasados a una función se denominan argumentos. Los valores esperados por una función son los parámetros.

 

Esta sintaxis para representar las funciones se utiliza tanto en su codificación como en su llamada para que se ejecute dentro de otras rutinas. Por ejemplo:

 

// Función utilizada dentro de una expresión
cDiaSem := "Hoy es una " + DiaToSem(DATE())


// Función utilizada como una línea de instrucción
Inclui()

 

La llamada de una función para su ejecución, que pertenezca a la biblioteca estándar del AdvPL o que el programador cree, es una expresión que siempre resulta en un valor. La propia función determina el tipo de dato (carácter, numérico, fecha, lógico, array o bloque de código) del valor resultante. Por ello, una función puede formar parte de cualquier otra expresión válida, como por ejemplo, formar parte de la lista de argumentos y parámetros de otra función.

 

Las funciones específicas y personalizadas creadas por los usuarios y programadores, denominadas como funciones de usuario, no son diferentes de las funciones estándar del AdvPL. Tienen la misma estructura y las mismas reglas. Solo existen dos diferencias: la declaración de la función debe realizarse con la clase User, de acuerdo con lo que se explica y muestra en el documento "Clases de funciones" incluido en la carpeta "Programa y funciones", y la llamada de una función de usuario debe realizarse mediante el identificador "U_" más el nombre de la función. Por ejemplo, un programador creó la función específica EspCalc(cTipo). En este caso, la llamada de esta función sería U_EspCalc(cTipo).

  • Sem rótulos