Раздел 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++.


Упражнение:

Допустим, необходимо объявить строковую переменную, длина которой будет изменяться, и заранее неизвестно ее максимальное значение. Какой тип лучше всего использовать?

  1. String
  2. Bounded_String
  3. Unbounded_String
  4. C.Strings.chars_ptr

Вы можете также:

PREVIOUS Перейти к предыдущему разделу

NEXT     Перейти к следующему разделу

OUTLINE  Вернуться к содержанию Урока 8

David A. Wheeler (dwheeler@ida.org)

Перевод: Юрий Королев   Общая редакция перевода: Г.Ю. Сисюк

Исходная копия этого документа находится по адресу "http://www.adahome.com/Tutorials/Lovelace/s8s2.htm".

Исходная копия перевода размещена на сайте http://www.ada-ru.org