Атрибуты
Ада предусматривает специальный класс предопределенных операций, которые позволяют в удобной форме определять и использовать различные характеристики типов и экземпляров объектов. Они называются атрибутами.
Указание имени требуемого атрибута производится в конце имени экземпляра объекта (переменной, константы) или имени типа с использованием символа одинарных кавычек.
имя_типа'имя_атрибута
имя_экземпляра_объекта'имя_атрибута |
Некоторыми из атрибутов для дискретных типов являются:
type Processors is (M68000, i8086, i80386, M68030, Pentium, PowerPC);
Integer'First -- наименьшее целое Integer Integer'Last -- наибольшее целое Integer Processors'Succ(M68000) -- последующее за M68000 в типе Upper_Chars'Pred('C') -- предшествующее перед 'C' в типе ('B') Integer'Image(67) -- строка " 67" -- пробел для '-' Integer'Value("67") -- целое значение 67 Processors'Pos(M68030) -- позиция M68030 в типе -- (3, первая позиция - 0) |
Простым примером использования атрибутов, - для улучшения переносимости программы, - может служить следующий пример описания подтипа Positive, предоставляющего положительные целые числа:
subtype Positive is Integer range 1..Integer'Last; |
Здесь мы получаем размер максимального положительного целого не зависимо от любых системно зависимых свойств.
В Ada83 для не дискретных типов, - таких как Float, Fixed, всех их подтипов и производных от них типов, - концепции 'Pred и 'Succ - не имеют смысла. В Ada95 - они присутствуют. Все другие атрибуты скалярных типов также справедливы и для вещественных типов.
Copyright (C) А.Гавва | V-0.4w май 2004 |