Si especifica el modificador inOut o out, los cambios realizados en el valor del parámetro están disponibles en la función invocadora. Los modificadores se describen posteriormente y en la sección Implicaciones de inOut y los modificadores relacionados.
Un parámetro no es visible en las funciones que invoca la función que contiene el parámetro; sin embargo, un parámetro se puede pasar como argumento de aquellas otras funciones.
Un parámetro que termina en corchetes ([ ]) es una matriz dinámica, y las demás especificaciones declaran aspectos de cada elemento de esa matriz.
El modificador inOut es necesario si el parámetro es un elemento y si especifica el modificador field, lo que indica que el parámetro tiene atributos de campo de formulario con posibilidad de prueba como blanks o numeric.
Si el parámetro es un registro (no un registro fijo), el modificador inOut es el único válido.
Si el modificador inOut está en vigor, el argumento relacionado debe tener compatibilidad de referencia con el parámetro, como se describe en el apartado Compatibilidad de referencia en EGL.
No puede utilizar el modificador in para un elemento que tenga el modificador field. Además, no puede especificar el modificador in para un registro (que no sea un registro fijo); o para un registro fijo que se utilice para acceder a un archivo o una base de datos en la función actual o en una función invocada por la función actual.
Si el argumento es un literal o una constante, el argumento se trata como si el modificador in estuviera en vigor.
No puede utilizar el modificador out para un parámetro que tenga el modificador field. Tampoco puede especificar el modificador out para un registro, o para un registro fijo que se utilice para acceder a un archivo o una base de datos en la función actual o en una función invocada por la función actual.
Las funciones de biblioteca no reciben información de estado de registro.
Si desea que el parámetro acepte un número de cualquier tipo primitivo y longitud, especifique NUMBER como tipo loose. En este caso, el número pasado al parámetro no debe tener posiciones decimales.
Si desea que el parámetro acepte una serie de un tipo primitivo determinado pero cualquier longitud, especifique CHAR, DBCHAR, MBCHAR, HEX o UNICODE como tipo loose y asegúrese de que el argumento es del tipo primitivo correspondiente.
La definición del argumento determina lo que ocurre cuando una sentencia de la función opera sobre un parámetro de tipo loose.
Los tipos loose no están disponibles en funciones declaradas en bibliotecas.
Para obtener detalles acerca de los tipos primitivos, consulte el apartado Tipos primitivos.
El modificador field solo está disponible si especifica el modificador inOut o acepta el modificador inOut predeterminado.
El modificador field no está disponible para parámetros de función en una biblioteca de tipo nativeLibrary.
program inoutpgm a int; b int; c int; function main() a = 1; b = 1; c = 1; func1(a,b,c); // a = 1 // b = 3 // c = 3 end function func1(x int in, y int out, z int inout) // a = 1 x = 1 // b = 1 y = 0 // c = 1 z = 1 x = 2; y = 2; z = 2; // a = 1 x = 2 // b = 1 y = 2 // c = 2 z = 2 func2(); func3(x, y, z); // a = 1 x = 2 // b = 1 y = 3 // c = 3 z = 3 end function func2() // a = 1 // b = 1 // c = 2 end function func3(q int in, r int out, s int inout) // a = 1 x = unresolved q = 2 // b = 1 y = unresolved r = 2 // c = 2 z = unresolved s = 2 q = 3; r = 3; s = 3; // a = 1 x = unresolved q = 3 // b = 1 y = unresolved r = 3 // c = 3 z = unresolved s = 3 end
Conceptos relacionados
Componente de función
Componente de biblioteca de tipo basicLibrary
Componente de biblioteca de tipo nativeLibrary
Componentes
Referencias a componentes
Referencias a variables en EGL
Typedef
Consulta relacionada
Componente de registro básico en formato fuente EGL
Inicialización de datos
Formato fuente EGL
Componente de función en formato fuente EGL
Componente de registro indexado en formato fuente EGL
INTERVAL
Expresiones lógicas
Componente de registro MQ en formato fuente EGL
Convenios de denominación
Tipos primitivos
Compatibilidad de referencia en EGL
Componente de registro relativo en formato fuente EGL
Componente de registro serie en formato fuente EGL
Componente de registro SQL en formato fuente EGL
TIMESTAMP