Переименование поля записи
Предположим, что у нас имеются следующие описания:
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 не требует никакого распределения дополнительного пространства данных.
Вместо этого, оно локализует имя для компонента, который вложен в запись.
При наличии компонентов записей с большим уровнем вложения, такой подход может оказаться весьма удобным.