Spec-Zone.ru › Ada 95
Справочник по Ada 95

4.1.2 Срезы

Срез обозначает одномерный массив, образованный последовательностью смежных компонентов одномерного массива. Срез переменной является переменной; срез константы является константой; срез значения является значением.

Синтаксис

slice ::= prefix(discrete_range)

Правила разрешения имен

Префикс среза должен разрешать обозначение одномерного массива (после любого неявного разыменования).
Ожидаемый тип для дискретного диапазона среза — это тип индекса типа массива.

Статическая семантика

Срез обозначает одномерный массив, образованный последовательностью смежных компонентов массива, обозначаемого префиксом, соответствующему диапазону значений индекса, заданному дискретным диапазоном.
Тип среза — это тип префикса. Его границы определяются дискретным диапазоном.

Динамическая семантика

Для оценки среза префикс и дискретный диапазон оцениваются в произвольном порядке. Если срез не является нулевым срезом (срез, где дискретный диапазон — нулевой диапазон), то проверяется, что границы дискретного диапазона принадлежат диапазону индексов массива, обозначаемого префиксом. Если эта проверка не пройдена, генерируется ошибка Constraint_Error.
ПРИМЕЧАНИЯ
2 Срез не может быть префиксом атрибута доступа attribute_reference, даже если компоненты или весь массив имеют псевдоним. См. 3.10.2.
3 Для одномерного массива A, срез A(N .. N) обозначает массив, имеющий только один компонент; его тип — это тип A. С другой стороны, A(N) обозначает компонент массива A и имеет соответствующий тип компонента.

Примеры

Примеры срезов:
Stars(1 .. 15) -- срез из 15 символов (см. 3.6.3)
Page(10 .. 10 + Size) -- срез из 1 + Size компонентов (см. 3.6)
Page(L)(A .. B) -- срез массива Page(L) (см. 3.6)
Stars(1 .. 0) -- нулевой срез (см. 3.6.3)
My_Schedule(Weekday) -- границы, заданные подтипом (см. 3.6.1 и 3.5.1)
Stars(5 .. 15)(K) -- то же самое, что Stars(K) (см. 3.6.3)
-- при условии, что K находится в 5 .. 15


Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API