ada
Общность в Аде
Поиск…
Общие подпрограммы
Общие подпрограммы полезны для создания подпрограмм, имеющих одну и ту же структуру для нескольких типов. Например, чтобы обменять два объекта:
generic
type A_Type is private;
procedure Swap (Left, Right : in out A_Type) is
Temp : A_Type := Left;
begin
Left := Right;
Right := Temp;
end Swap;
Общие пакеты
В общем пакете Ada после создания экземпляра данные дублируются; то есть, если они содержат глобальные переменные, каждый экземпляр будет иметь свою собственную копию переменной, правильно напечатанную и независимую от других.
generic
type T is private;
package Gen is
type C is tagged record
V : T;
end record;
G : Integer;
end Gen;
Общие параметры
Ada предлагает широкий спектр общих параметров, которые трудно перевести на другие языки. Параметры, используемые во время создания экземпляра и, как следствие, те, на которых может рассчитывать общий элемент, могут быть переменными, типами, подпрограммами или экземплярами пакетов с определенными свойствами. Например, следующее предоставляет алгоритм сортировки для любого типа массива:
generic
type Component is private;
type Index is (<>);
with function "<" (Left, Right : Component) return Boolean;
type Array_Type is array (Index range <>) of Component;
procedure Sort (A : in out Array_Type);