Funciones definidas por el usuario inline y de tipo estándar

www.altova.com Imprimir este apartado Página anterior Subir un nivel Página siguiente

Inicio >  Funciones > Funciones definidas por el usuario >

Funciones definidas por el usuario inline y de tipo estándar

Existen dos tipos de funciones definidas por el usuario: inline y de tipo estándar. Puede indicar si una función debe ser inline o de tipo estándar al crearla (véase Crear funciones definidas por el usuario). Las funciones inline y de tipo estándar se comportan de forma diferente a la hora de generar código, en cuanto a recursividad y al tener varios parámetros de salida.

 

Funciones inline

Funciones de tipo estándar

Las funciones inline se obtienen de todas las instancias en las que aparecen en el código generado, lo que hace que el código sea más largo pero también algo más rápido.

 

Observe que las funciones inline pueden aumentar significativamente la cantidad de código de programación que se genera. El código de la función definida por el usuario se inserta en todos los lugares en los que se llama a la función, lo que aumenta considerablemente el tamaño del código, algo que no ocurre si usamos una función de tipo estándar.

Cada componente de una función definida por el usuario genera un código para llamar a funciones en el que los componentes de entrada se pasan como parámetros y el componente de salida es el valor de retorno de la función.

 

En el momento de ejecución todos los valores de los parámetros son evaluados primero; después se llama a la función por cada incidencia de los datos de entrada

Las funciones inline pueden tener varios componentes de salida y por tanto devolver varios valores.

Las funciones de tipo estándar solo pueden tener un componente de salida. Para que devuelvan varios valores puede declarar que la salida es de tipo complejo (por ejemplo, estructura XML), lo que permitiría pasar varios valores al usuario.

No se puede llamar a las funciones inline de forma recursiva.

Se puede llamar de forma recursiva a las funciones de tipo estándar.

Las funciones inline no permiten establecer un contexto de prioridad en un parámetro (véase Nodo de contexto prioritario/elemento).

Las funciones inline permiten establecer un contexto de prioridad en un parámetro

 

En la asignación, las funciones definidas por el usuario se muestran con un borde punteado. Por ejemplo, el componente del medio de la siguiente asignación es una función definida por el usuario de tipo inline.

mf_udf_06

Las funciones de tipo estándar se muestran con un borde de línea sólida. Por ejemplo, el componente del medio de la siguiente asignación es una función definida por el usuario de tipo estándar.

mf_udf_05


© 2019 Altova GmbH