Programación en Ada/Tipos/Registros
Un registro es un tipo que almacena varios campos de tipos distintos y que se identifican por su nombre. En C/C++ se llaman struct y en Pascal y Ada record.
type
T_Sensoris
record
Magnitud : Natural; Alarma : Boolean;end
record
;
Acceso a los campos
editarPara acceder a los campos de un registro se usa la clásica notación registro.componente:
procedure
Medir_temperaturais
Sensor_temperatura : T_Sensor;begin
Sensor_temperatura.Magnitud := 23; Sensor_temperatura.Alarma := False;-- ...
if
Sensor_temperatura.Alarmathen
Put_Line ("Alarma de temperatura"
);end
if
;end
;
Para asignar valores a todos los componentes se puede utilizar un agregado, lo cual es útil para asegurarnos de que no dejamos ninguno sin darle un valor:
procedure
Asignar_temperaturais
Sensor_temperatura : T_Sensor;begin
Sensor_temperatura := (Magnitud => 23, Alarma => False);end
;
También es posible dar un valor inicial a algunos o todos los componentes de un registro de modo que todos los objetos de ese tipo se inicialicen automáticamente con esos valores:
type
T_Sensoris
record
Magnitud : Natural := 0; Alarma : Boolean := False;end
record
;
Registro nulo
editarEl registro nulo se puede usar cuando se necesita un tipo que no almacene ningún dato (aunque parezca raro hay casos en los que es útil, como instanciar un genérico que pide un tipo, para el cual no tenemos ningún dato que pasarle). Hay dos maneras de declarar un registro nulo:
type
Registro_Nulois
record
null
;end
record
;
type
Registro_Nulois
null
record
;
Ambas definiciones son semánticamente idénticas, la segunda es simplemente una sintaxis abreviada.
La declaración de una variable o constante de este tipo sería:
Nulo :constant
Registro_Nulo := (null
record
);
Tipos especiales de registros
editar- Registros con discriminante
- Registros con parte variante
- Registros etiquetados, dan soporte de la programación orientada a objetos en Ada 95.