Справочник по Ada 2012
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;
ПРИМЕЧАНИЯ
57 Литералы строк (см. 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