web-dev-qa-db-ja.com

関数/メソッドの「仕様」の名前は何ですか?

関数/メソッドの「仕様」には特別な名前があると確信しています。それは言及する言葉です

  • 引数がいくつ必要か
  • 引数の順序
  • オプションの引数

その名前はありますか?

21
callum

通常、これは タイプシグネチャ と呼ばれます。

型シグネチャには、関数の戻り値の型、引数の数、引数の型、または関数が返すエラーが含まれます。

47
Kilian Foth

TL; DR関数シグネチャ(またはメソッドシグネチャ)について話している可能性があります。その一部は型シグネチャです。

しかし、実際には、関数の「仕様」と考えるものに依存します。私は「プログラマーが関数を呼び出すために必要なすべての情報」と解釈します。これには、関数名、パラメーターの型、順序、および必要性、おそらく戻り値の型、そしておそらくその関数の名前空間さえ含まれます。

しかし、それらすべてが必要であるかどうか(または明確に定義されているかどうか)は、使用している言語/環境によって異なります。また、定義を「machineが関数を呼び出すために必要なすべての情報」に変更した場合、仕様は異なる可能性があります1

厳密に言えば、関数(またはメソッド)のシグネチャは一貫した用語ではありません。2、3 同じ言語内でも。4、5、6、7 しかし、ほとんどすべてのプログラマーが理解できるので、ほぼ間違いなくあなたが探しているWordです。


  1. C++仕様ドラフトn337、定義1.3.17、シグニチャーには関数を解決する必要がないため、戻り値の型は含まれていません。

  1. "signature"には名前空間情報は含まれません
  2. "signature"には、publicstaticなどの例外と修飾子が含まれます

  1. C++の「署名」には戻り値の型は含まれません
  2. C++ "signatures"doinclude return type。
  3. 関数がテンプレートの特殊化でない限り、C++の「シグネチャ」には戻り値の型は含まれません。
  4. C++の「シグネチャ」には、ネームスペース(スコープ)情報と「その他の雑多なもの」が含まれます...

23
kdbanman

その言葉は「契約」だと思います。これは、インターフェイスと、呼び出し元と呼び出し先に期待されるものを定義します。ただし、多くの言語で関数またはクラスの定義によって定義できるものではないパラメーターの許容値なども対象とするため、「契約」という用語は、意図した意味よりも広い意味を持つ場合があります。私はそれをいくつかのオブジェクト指向およびJava特定のプログラミングの本で見ました。それがJava特定であるかどうかはわかりませんが、それがなぜなのかわかりません署名は一般的に使用されるもう1つの用語ですが、「契約」が好きになりました。

0
Andrew