Dプログラミング-関数
この章では、Dプログラミングで使用される関数について説明します。
Dの関数定義
基本的な関数定義は、関数ヘッダーと関数本体で構成されます。
構文
ここに関数のすべての部分があります-
- 戻り値の型-関数は値を返す場合があります。 return_type は、関数が返す値のデータ型です。 一部の関数は、値を返さずに目的の操作を実行します。 この場合、return_typeはキーワード void です。
- 関数名-これは関数の実際の名前です。 関数名とパラメーターリストは一緒に関数シグネチャを構成します。
- パラメータ-パラメータはプレースホルダのようなものです。 関数が呼び出されると、パラメーターに値を渡します。 この値は、実パラメーターまたは引数と呼ばれます。 パラメーターリストは、関数のパラメーターのタイプ、順序、および数を参照します。 パラメーターはオプションです。つまり、関数にパラメーターを含めることはできません。
- 関数本体-関数本体には、関数の動作を定義するステートメントのコレクションが含まれています。
関数を呼び出す
次のように関数を呼び出すことができます-
Dの関数タイプ
Dプログラミングは幅広い機能をサポートしており、以下にリストされています。
- 純粋な機能
- スロー機能
- 参照関数
- 自動機能
- 可変長関数
- 入出力関数
- プロパティ関数
以下に、さまざまな機能について説明します。
純粋な機能
純粋な関数とは、引数を通じてグローバルまたは静的な可変状態保存にアクセスできない関数です。 これにより、純粋な関数は渡されないものを何も変更しないことが保証されているという事実に基づいて最適化を有効にできます。つまり、関数が同じ引数に対して常に同じ結果を返すという保証です)。
上記のコードをコンパイルして実行すると、次の結果が生成されます-
スロー機能
nothrow関数は、クラスExceptionから派生した例外をスローしません。 スロー機能はスロー機能と共変です。
Nothrowは、関数が例外を発行しないことを保証します。
上記のコードをコンパイルして実行すると、次の結果が生成されます-
参照関数
Ref関数を使用すると、関数を参照によって返すことができます。 これはref関数のパラメーターに似ています。
上記のコードをコンパイルして実行すると、次の結果が生成されます-
自動機能
自動関数は、任意のタイプの値を返すことができます。 返される型に制限はありません。 自動タイプ関数の簡単な例を以下に示します。
上記のコードをコンパイルして実行すると、次の結果が生成されます-
可変長関数
Variadiac関数は、関数のパラメーターの数が実行時に決定される関数です。 Cには、少なくとも1つのパラメーターを持つという制限があります。 しかし、Dプログラミングでは、そのような制限はありません。 以下に簡単な例を示します。
上記のコードをコンパイルして実行すると、次の結果が生成されます-
入出力関数
inoutは、パラメーターのタイプと関数の戻りタイプの両方に使用できます。 これは、可変、const、および不変のテンプレートのようなものです。 可変性属性は、パラメーターから推定されます。 つまり、inoutは、推定された可変性属性を戻り値の型に転送します。 可変性がどのように変化するかを示す簡単な例を以下に示します。
上記のコードをコンパイルして実行すると、次の結果が生成されます-
プロパティ関数
プロパティにより、メンバー変数などのメンバー関数を使用できます。 @propertyキーワードを使用します。 プロパティは、要件に基づいて値を返す関連機能にリンクされています。 プロパティの簡単な例を以下に示します。
上記のコードをコンパイルして実行すると、次の結果が生成されます-