サーチ…


汎用サブプログラム

汎用サブプログラムは、いくつかの型に対して同じ構造を持つサブプログラムを作成するのに便利です。たとえば、2つのオブジェクトを交換するには:

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);


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow