先来复习一下java中的函数重载
函数名称相同
与返回值无关
参数个数不同
参数顺序不同
public void getSum(){
}
public void getSum(int a){
}
public void getSum(int a,int b){
}
我们来看,我定义了3个重载的函数,这个重载的问题是,我们有一堆函数,看着眼睛都瞎了。
现在我们来看看Kotlin中是怎么消除函数重载的
Kotlin消除函数重载
//在定义函数的时候,只需要给参数提供默认值,那么我们就可以消除函数重载
/**
* a的默认值为1,在使用的时候,如果用户传入了a,那么就会使用传递的值,否则会使用默认值
* b的默认值为2,在使用的时候,如果用户传入了b,那么就会使用传递的值,否则会使用默认值
*/
fun getSum(a:Int=1,b:Int=2){
}
使用
//两个参数都不传,都使用默认值
p.getSum()
//第二个参数不传
p.getSum(1)
//两个参数都传
p.getSum(1,2)
//低一个参数不传
p.getSum(b=2)
是不是很方便,再也不用看一大堆名称相同的函数了
备注:在声明函数的时候,只有提供了默认值的参数,才可以不传
网友评论