1. 程式人生 > >kotlin學習小記6--過載、預設引數

kotlin學習小記6--過載、預設引數

1、過載(overloads):方法名相同、引數不同(與返回值沒有關係,因為jvm預設會為每個方法生成一個簽名,而這個簽名是由方法名和引數列表生成)

fun smaile():Unit{
    Log.i("wangsen", "smaile:");
}

fun smaile(str:String):Unit{
    Log.i("wangsen", "smaile:");
}

上面的例子是正確的方法過載,而下面的例子是不可以的,如:

fun smaile():Unit{
    Log.i("wangsen", "smaile:");
}

fun smaile():Int{
    Log.i("wangsen", "smaile:");
}

2、在kotlin中,其實任何引數都可以有預設值得,如:

fun smaile(str:String = "123"):Unit{
    Log.i("Demo", "smaile:");
}

然後在呼叫的時候,可以不傳引數,直接呼叫this.smaile()

備註:如果是在java檔案中直接呼叫方法時,如果想使用預設引數,還得在方法上增加註解@JvmOverloads