Поля записей типа 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 " ); |