函數簽名的概念


什么是函數簽名呢?

函數簽名(或者類型簽名或方法簽名)定義了函數或方法的輸入與輸出

簽名可包含:

  •  參數及參數的類型
  •    返回值及其類型
  •    可能拋出或傳出的異常
  •    該方法在面向對象程序中可用性方面的信息(如public、static或prototype

JavaScript中的簽名

  JavaScript是一鍾松散型或動態語言。這意味着你不必提前聲明變量的類型。類型將在程序處理時自動確定。JavaScript中的簽名仍然可以為你提供有關該方法的一些信息:

  

MyObject.prototype.myFunction(value)
  • 該方法是安裝在一個名為MyObject的對象上面。
  • 該方法安裝在MyObject的原型上(因此它是一個實例方法),而不是static、或pulic
  • 該方法名為myFunction.
  • 該方法接受一個參數,該參數被稱為value,並且value沒有進一步定義

C語言中的簽名

C語言中,是一個強類型的語言,在編譯的時候就會被確定:

#include<stdio.h>
int total(int x , int y);
int total(int x , int y ,int z);
int main(){
    int sum;
    sum = total(1,2);
    sum = total(1,2,3);
    printf("%d",sum);
    return 0;
} 
int total(int x,int y){
    return x+y;
}
int total(int x,int y,int z){
    return x+y+z;
}
  • int 表示是一個整型的函數,返回值必須是個整數
  • 該函數的名字是total
  • 一個有2個參數,一個有三個參數(且參數都為整型)

函數能否被重載,取決於函數簽名:

C語言中函數可以被重載,因為函數簽名有多個,可以重載,而在JavaScript中,函數簽名只有函數名一個簽名,一旦函數名相同,就會按照后來的函數來進行操作,所以JavaScript不能夠被重載。

在java中方法重載與下列因素相關:

下面說說java中的重載:

比如:

public  static  int  sum(int a, int b){  //①
      return a+b;  
}
public  static  int  sum(int a, int b,int c){  //②
      return a+b+c;  
}
public  static  int  sum(double a, double b){    //③
      return a+b;  
}
public  static  int  sum(int a, double b){    //④
      return a+b;  
}
public  static  int  sum(double a, int b){    //⑤
      return a+b;  
}

 

這些它們是同一個名字,但是都可以被重載

①和②因為參數個數不同

①和③④因為參數的類型不同

④和⑤因為參數的順序不同

但是我們有下面的則將不會重載

public  static  int  sum(double x, int y){   
      return a+b;  
}                //參數的名字是無關的,無法被重載
public  static  double sum(double x, int y){   
      return a+b+0.5;  
}                //與方法的返回值是無關的,無法被重載

 

這就是這方面的補充了,寫的有不好的地方,請讀者見諒

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM