Руководство по Ada (Ada 2022)
3.6.3 Типы строк
Статические семантики
Одномерный массивный тип, компоненты которого имеют тип символа, называется типом строки.
Существует три предопределённых типа строк, String, Wide_String и Wide_Wide_String, каждый из которых индексируется значениями предопределённого подтипа Positive; они объявлены во видимой части пакета Standard:
подтип Positive является Integer диапазоном 1 .. Integer'Last;
тип String является массивом(Positive диапазоном <>) из Character;
тип Wide_String является массивом(Positive диапазоном <>) из Wide_Character;
тип Wide_Wide_String является массивом(Positive диапазоном <>) из Wide_Wide_Character;
тип Wide_String является массивом(Positive диапазоном <>) из Wide_Character;
тип Wide_Wide_String является массивом(Positive диапазоном <>) из Wide_Wide_Character;
ПРИМЕЧАНИЕ Литералы строк (см. 2.6 и 4.2) определены для всех типов строк. Оператор конкатенации & предопределён для типов строк, как и для всех одномерных массивов без ограничений. Операторы упорядочения <, <=, >, и >= предопределены для типов строк, как и для всех одномерных массивов дискретного типа; эти операторы упорядочения соответствуют лексикографическому порядку (см. 4.5.2).
Примеры
Примеры объектов строк:
Stars : String(1 .. 120) := (1 .. 120 => '*' );
Question : константа String := "Сколько символов?";
-- Question'First = 1, Question'Last = 20
-- Question'Length = 20 (количество символов)
Question : константа String := "Сколько символов?";
-- Question'First = 1, Question'Last = 20
-- Question'Length = 20 (количество символов)
Ask_Twice : String := Question & Question; -- ограничено (1..40)
Ninety_Six : константа Roman := "XCVI"; -- см. 3.5.2 и 3.6
Ninety_Six : константа Roman := "XCVI"; -- см. 3.5.2 и 3.6