持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第19天,点击查看活动详情
默认参数,就是在提供函数时,给参数制定一个默认值
所谓具名参数,其实很好理解,就是在传递参数的时候,指定参数的名称。这样做的好处就是可以不必按照参数的顺序去传值,另外与 变长参数 或者 默认参数 结合,会有更好的效果
为了更好理解这两个参数,我们会根据例子来说明,首先我们回忆下圆柱体的公式和球表面积的公式:
根据以上公式,我们来计算一个半径为2.0f的圆的周长
fun main(args: Array<String>) {
println(getCircleArea(3.14f,2.0f))
}
//获取长方形面积
fun getRectArea(x:Float,y:Float):Float{
return x*y
}
//根据半径获取圆周长
fun getCircleArea(PI:Float,r:Float):Float{
return 2*PI*r
}
//获取直径获取圆周长
fun getCircleArea2(PI:Float,d:Float):Float{
return PI*d
}
//获取圆柱体积
fun getCylinderVolume(PI:Float,r:Float,h:Float):Float{
return PI*r*r*h
}
//获取球形体积
fun getSphereVolume(PI:Float,r:Float):Float{
return 4*PI*r*r
}
打印结果为:
12.56
仔细观察以上的方法,很多方法都有PI这个参数,所以可以定义一个常量Pi,然后下面的方法中的PI都可以给它一个默认值了。再调用的时候,就可以不用再传PI这个参数了,但是,后边的参数需要具体的参数名称。具体用法如下:
val Pi = 3.14f
fun main(args: Array<String>) {
println(getCircleArea(r = 2.0f))
}
//获取长方形面积
fun getRectArea(x:Float,y:Float):Float{
return x*y
}
//根据半径获取圆周长
fun getCircleArea(PI:Float = Pi,r:Float):Float{
return 2*PI*r
}
//获取直径获取圆周长
fun getCircleArea2(PI:Float = Pi,d:Float):Float{
return PI*d
}
//获取圆柱体积
fun getCylinderVolume(PI:Float = Pi,r:Float,h:Float):Float{
return PI*r*r*h
}
//获取球形体积
fun getSphereVolume(PI:Float = Pi,r:Float):Float{
return 4*PI*r*r
}