Dプログラミング-Mixins
ミックスインは、生成されたコードをソースコードに混合できる構造体です。 ミックスインは次のタイプにすることができます-
- ストリングミックスイン
- テンプレートミックスイン
- Mixin名前空間
ストリングミックスイン
Dは、文字列がコンパイル時に既知である限り、文字列としてコードを挿入する機能を備えています。 文字列ミックスインの構文は以下に示されています-
例
文字列ミックスインの簡単な例を以下に示します。
上記のコードをコンパイルして実行すると、次の結果が生成されます-
mixinが関数を使用してコードを再利用できるように、コンパイル時に文字列を渡すことができる別の例を次に示します。 以下に示します。
上記のコードをコンパイルして実行すると、次の結果が生成されます-
テンプレートミックスイン
Dテンプレートは、コンパイラがそのパターンから実際のインスタンスを生成するための一般的なコードパターンを定義します。 テンプレートは、関数、構造体、共用体、クラス、インターフェース、およびその他の正当なDコードを生成できます。 テンプレートミックスインの構文は次のとおりです。
文字列ミックスインの簡単な例を以下に示します。ここでは、クラスDepartmentを持つテンプレートを作成し、テンプレートをインスタンス化するミックスインを作成して、構造体カレッジで関数setNameおよびprintNamesを使用できるようにします。
例
上記のコードをコンパイルして実行すると、次の結果が生成されます-
Mixin名前空間
ミックスインの名前空間は、テンプレートミックスインのあいまいさを避けるために使用されます。 たとえば、2つの変数があり、1つはmainで明示的に定義され、もう1つは混在しています。 混在する名前が周囲のスコープ内の名前と同じ場合、周囲のスコープ内の名前が使用されます。 この例を以下に示します。
例
上記のコードをコンパイルして実行すると、次の結果が生成されます-