美文网首页
kotlin 函数默认参数

kotlin 函数默认参数

作者: toExploreFuture | 来源:发表于2018-11-16 11:37 被阅读0次
  • kotlin 在定义函数的时候,参数是可以带着默认值的,如下
/*kotlin 函数默认参数*/
object KotlinFunctionDefaultParamValue {
    @JvmStatic
    fun show(name : String = "to-explore-future",gender : Boolean = true,height : Int = 120){
        println("name = $name , isMan = $gender , height = $height")
    }
}

如果调用的时候,不传参数,系统使用参数的默认值

fun aboutKotlinDefaultParamValue(){
    KotlinFunctionDefaultParamValue.show()
    KotlinFunctionDefaultParamValue.show("lucy")
    KotlinFunctionDefaultParamValue.show("zq",true)
    KotlinFunctionDefaultParamValue.show("tom",true,180)
}

输出结果

name = to-explore-future , isMan = true , height = 120
name = lucy , isMan = true , height = 120
name = zq , isMan = true , height = 120
name = tom , isMan = true , height = 180

比java强在什么地方:省去写重载方法

看看同样的输出,java要怎么实现

public class JavaOverLoadedMethod {

    public static void show(){
        show("to-explore-future");
    }

    public static void show(String name){
        show(name.isEmpty() ? "to-explore-future" : name,true);
    }

    public static void show(String name, boolean isMan) {
        show(name.isEmpty() ? "to-explore-future":name,isMan,180);
    }

    public static void show(String name, boolean isMan, int height) {
        System.out.println("name = " + name + ", isMan = " + isMan + ", height = " + height);
    }
}

java调用,以及输出结果

fun aboutKotlinDefaultParamValue(){
    JavaOverLoadedMethod.show()
    JavaOverLoadedMethod.show("Lucy")
    JavaOverLoadedMethod.show("zq", true)
    JavaOverLoadedMethod.show("tom", true, 180)
}

name = to-explore-future, isMan = true, height = 180
name = Lucy, isMan = true, height = 180
name = zq, isMan = true, height = 180
name = tom, isMan = true, height = 180

  • kotlin 函数默认参数的传参顺序要注意:https://www.jianshu.com/p/32424d267412

  • 最后,以上的例子只是kotlin中一个三个参数的function,那如果一个funciton有更多的参数,java要 写多少构造方法才能实现和kotlin同等的调用结果呢?

相关文章

网友评论

      本文标题:kotlin 函数默认参数

      本文链接:https://www.haomeiwen.com/subject/gxgpfqtx.html