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

       

Поля записей типа String


Частным случаем использования массивов в качестве компонентов записей являются строки String. Тип String, по сути, является предопределенным неограниченным массивом символов, поэтому для строк, при описании полей записи, допускается как предварительное описание какого-либо строкового типа или подтипа, так и непосредственное использование типа String. Например:

type Name_String is new String(1..10); subtype Address_String is String(1..20);

type Person is record

First_Name: Name_String; Last_Name : Name_String; Address : Address_String; Phone : String(1..15); end record;

В приведенном выше примере описания типа записи Person, для описания полей First_Name и Last_Name

используется самостоятельный строковый тип Name_String, производный от типа String. Для описания поля Address, используется подтип Address_String. Следует заметить, что тип Name_String и подтип Address_String, оба описывают ограниченные строки (или массивы символов). При описании поля Phone непосредственно использован тип String. В этом случае, для типа String, указывается ограничение для значений индекса - (1..15).

Для строковых полей, вместо агрегатов массива допускается использование строковых литералов. Например:

Chief : Person := ( First_Name => "Matroskin ", Last_Name => "Kot ", Address => "Prostokvashino ", Phone => "8-9-222-333 " );



Содержание раздела