Ада-95. Компилятор GNAT


         

Переименование поля записи


Предположим, что у нас имеются следующие описания:

subtype Number_Symbol is Character range '0' .. '9'; subtype Address_Character is Character range

Ada.Characters.Latin_1.Space .. Ada.Characters.Latin_1.LC_Z;

type Address_Data is array (Positive range <>) of Address_Character; type Number_Data is array (Positive range <>) of Number_Symbol;

type Phone_Number is

record

Country_Code : Number_Data(1..2); Area_Code : Number_Data(1..3); Prefix : Number_Data(1..3); Last_Four : Number_Data(1..4); end record;

type Address_Record is

record

The_Phone : Phone_Number; Street_Address_1 : Address_Data(1..30); Street_Address_2 : Address_Data(1..20); City : Address_Data(1..25); State : Address_Data(1..2); Zip : Number_Data(1..5); Plus_4 : Number_Data(1..4); end record;

One_Address_Record : Address_Record;

Используя переименование, мы можем переименовать один из внутренних компонентов переменной записи One_Address_Record типа Address_Record, для прямого использования в программе.

Например, мы можем переименовать Area_Code в инструкции блока:

declare

AC: Number_Data renames One_Address_Record.The_Phone.Area_Code; begin

. . . end;

Описание AC не требует никакого распределения дополнительного пространства данных.

Вместо этого, оно локализует имя для компонента, который вложен в запись.

При наличии компонентов записей с большим уровнем вложения, такой подход может оказаться весьма удобным.




Содержание  Назад  Вперед