Раздел 8.2 - Строковые типы
Вообще говоря, одиночные символы не так уж и полезны. Обычно символы
образуют последовательности, которые называют ``строками''.
В Ada 83 имелся встроенный строковый тип, который назывался String.
Тип String актуален и сейчас, но часто необходимы типы, которые,
в зависимости от решаемой задачи, позволяли бы находить компромисс между
простотой использования и производительностью, при этом предоставляя
возможности типа String.
Поэтому в Аде 95 существует несколько различных
строковых типов, каждый из которых лучше всего работает в
определенном случае. Любой из них может быть преобразован в исходный
тип String и обратно, поэтому различные строковые типы могут быть легко
использованы совмесно в одной программе. Приведем перечень строковых
типов, существующих в языке Ada:
- String
-
Это основной строковый тип Ады называют также ``строкой фиксированной длины''.
Он представляет из себя просто массив символов. При создании строковой величины,
необходимо задать ее длину, которая всегда остается неизменной.
Это не так уж и плохо, как кажется на первый взгляд, так как
существуют простые методы изменения длины строковых величин.
Например, можно применить такой же, как и в языке C, подход:
использовать ссылочные переменные (указатели) на строки, которые
позволяют ``очистить'' строку, чтобы затем создать новую, которая, возможно,
будет иметь другую длину. Впрочем, если необходимо часто изменять длину
строки, то, вероятно, другие строковые типы будут более подходящими.
-
Bounded_String
-
Длина величины данного типа может изменяться до какого-то максимального
значения, которое вы зададите. Это полезно в тех случаях, когда во время
компиляции известно, какова наибольшая длина строки.
-
Unbounded_String
-
Длина величины данного типа может изменяться до максимально возможного
значения типа `Natural' (как правило, это более 2 миллиардов символов). Если имеются
строковые переменные, длину которых необходимо изменять, то, вероятно,
это наиболее подходящий тип.
-
Строковые типы других языков: C.Strings.chars_ptr, COBOL.Alphanumeric,
и Fortran_Character.
-
В Ada 95 имеется несколько типов для представления строк из других языков,
а именно из C, КОБОЛа и Фортрана. Если Вам приходится создавать интерфейсы
для обращения к компонентам, написанным на этих языках, то данные типы могут
быть весьма полезны.
Если вы заключаете символы в двойные кавычки, "например, так", то тем
самым вы используете константу типа String. Необходимо помнить, что
константа типа Character записывается в одинарных кавычках, например, 'L'.
Существует простое правило,
помогающее запомнить разницу между константами типов Character и String:
если нужна константа для одного символа - нужно использовать одинарные каычки.
Та же форма записи используется в C и C++.
Упражнение:
Допустим, необходимо объявить строковую переменную, длина которой
будет изменяться, и заранее неизвестно ее максимальное значение. Какой
тип лучше всего использовать?
- String
- Bounded_String
- Unbounded_String
- C.Strings.chars_ptr
Вы можете также:
David A. Wheeler (dwheeler@ida.org)
Перевод: Юрий Королев
Общая редакция перевода: Г.Ю. Сисюк
Исходная копия этого документа находится по адресу
"http://www.adahome.com/Tutorials/Lovelace/s8s2.htm".
Исходная копия перевода размещена на сайте http://www.ada-ru.org