類型簽名

計算機科學中,類型簽名(英語: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)

參考文獻

  1. ^ C++ Reference: Programming terms. [3 December 2013]. (原始內容存檔於2020-01-19). 
  2. ^ Defining Methods (The Java™ Tutorials > Learning the Java Language > Classes and Objects). docs.oracle.com. [2020-05-19]. (原始內容存檔於2021-04-17).