電腦科學中,型別簽章(英語:type signature)或型別註解type annotation)是對程式的函數、方法、子過程、以及變數等給出其型別。特別是對函數給出其輸入參數數量、型別與次序及輸出結果的型別。 許多編譯器產生的內部使用的函數名包含了其型別特徵,這稱為名字修飾,為連結器辨別不同的函數提供了方便。[1]

型別特徵的現代應用:

  • 物件導向語言使用的interface,實際上是利用了函數型別特徵的模板。
  • C++支援的函數多載實際上用不同的型別特徵來辨識。
  • 多繼承要求考慮函數特徵,以避免不可預計的結果。

C/C++

CC++ 中,型別簽章通常被宣告為函數原型,函數宣告也反映了其用法。例如,函數指標使用方法如下:

char c;
double d;
int retVal = (*fPtr)(c, d);

它的簽章為:

(int) (char, double);

Java

在Java中,方法簽章(英語:method signature)由方法的名字(method's name)與參數型別(parameter types)組成。[2] 如下例:

public double calculateAnswer(double wingSpan, int numberOfEngines,
                              double length, double grossTons) {
    //do the calculation here
}

該例的方法簽章為:calculateAnswer(double, int, double, double)

參考文獻

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.