Compatibilidad de referencia en EGL

Las reglas de compatibilidad de referencia se aplican a las variables de referencia y de no referencia, tal como se describe en las secciones siguientes.

Para variables de referencia

En relación a las variables de referencia, se aplican las sentencias siguientes:
  • En una sentencia de asignación, puede asignar una variable de referencia solamente a una variable de referencia que esté basada en el mismo componente
  • En una invocación de función, puede pasar una variable de referencia solamente a un parámetro que esté basado en el mismo componente
  • Puede devolver una variable de referencia de una función, pero el campo de retorno (que puede ser un valor en otra invocación de función) puede estar basado en el mismo componente

Un componente definido en un paquete EGL no es el mismo que un componente definido en otro paquete, incluso aunque los nombres de componente sean idénticos.

Para una visión general de variables de referencia, consulte Variables de referencia y NIL en EGL.

Para variables no de referencia

Hay un conjunto de reglas de compatibilidad de referencia en efecto cuando EGL transfiere un valor no de referencia entre un argumento y el parámetro relacionado, pero solo en la situación siguiente:
  • El parámetro de la función receptora tiene el modificador INOUT, o bien
  • El parámetro está en la función onPageLoad de un PageHandler.

En relación con un campo de estructura o registro fijo, la longitud del argumento debe ser mayor o igual que la longitud del parámetro. Esta regla impide que el código receptor acceda a la memoria que no es válida.

Además, cuando el argumento hace referencia a un tipo primitivo o una matriz de DataItems, se aplican las sentencias siguientes:
  • Las características primitivas (si existen) deben ser idénticas. Por ejemplo, un argumento de tipo CHAR(6) no es compatible con un parámetro de tipo CHAR(7). Sin embargo, cuando pasa literales, EGL trunca y rellena valores, tal como se describen en Compatibilidad de asignación en EGL.
  • Un argumento que tiene posibilidad de nulos es compatible con un parámetro con o sin posibilidad de nulos. Un argumento que no tiene posibilidad de nulos sólo es compatible con un parámetro que no tiene posibilidad de nulos.

Conceptos relacionados
PageHandler

Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.