先來復習一下java中的函數(shù)重載
函數(shù)名稱相同
與返回值無關(guān)
參數(shù)個數(shù)不同
參數(shù)順序不同
public void getSum(){
}
public void getSum(int a){
}
public void getSum(int a,int b){
}
我們來看,我定義了3個重載的函數(shù),這個重載的問題是,我們有一堆函數(shù),看著眼睛都瞎了。
現(xiàn)在我們來看看Kotlin中是怎么消除函數(shù)重載的
Kotlin消除函數(shù)重載
//在定義函數(shù)的時候,只需要給參數(shù)提供默認值,那么我們就可以消除函數(shù)重載
/**
* a的默認值為1,在使用的時候,如果用戶傳入了a,那么就會使用傳遞的值,否則會使用默認值
* b的默認值為2,在使用的時候,如果用戶傳入了b,那么就會使用傳遞的值,否則會使用默認值
*/
fun getSum(a:Int=1,b:Int=2){
}
使用
//兩個參數(shù)都不傳,都使用默認值
p.getSum()
//第二個參數(shù)不傳
p.getSum(1)
//兩個參數(shù)都傳
p.getSum(1,2)
//低一個參數(shù)不傳
p.getSum(b=2)
是不是很方便,再也不用看一大堆名稱相同的函數(shù)了
備注:在聲明函數(shù)的時候,只有提供了默認值的參數(shù),才可以不傳