类型签名
在计算机科学中,类型签名(英语:type signature)或类型注解(type annotation)是对程序的函数、方法、子过程、以及变量等给出其类型。特别是对函数给出其输入参数数量、类型与次序及输出结果的类型。 许多编译器产生的内部使用的函数名包含了其类型特征,这称为名字修饰,为链接器辨别不同的函数提供了方便。[1]
类型特征的现代应用:
- 面向对象语言使用的interface,实际上是利用了函数类型特征的模板。
- C++支持的函数重载实际上用不同的类型特征来辨识。
- 多继承要求考虑函数特征,以避免不可预计的结果。
C/C++
在 C 和 C++ 中,类型签名通常被声明为函数原型,函数声明也反映了其用法。例如,函数指针使用方法如下:
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)
参考文献
- ^ C++ Reference: Programming terms. [3 December 2013]. (原始内容存档于2020-01-19).
- ^ Defining Methods (The Java™ Tutorials > Learning the Java Language > Classes and Objects). docs.oracle.com. [2020-05-19]. (原始内容存档于2021-04-17).