默認參數的使用數組
能夠在方法的參數中設置值做爲它的默認參數值bash
fun reformat(str: String = "11",isTrue: Boolean = false){
println(str)
println(isTrue)
}
複製代碼
使用默認參數在調用的時候就能夠不傳遞參數ui
//使用默認參數
reformat()
複製代碼
具名參數的使用spa
具名參數就是指定參數名對其賦值,這樣的好處就是在傳參數的時候不須要考慮一一對應,另外由於Kotlin的參數傳遞的靈活性,在傳遞參數時很容易出現歧義,這時候能夠經過具名參數來消除歧義。code
//使用具名參數,能夠指定具體的參數
reformat(isTrue = false,str = "a")
複製代碼
變長參數的使用orm
變長參數能夠對一個參數賦多個值,須要用到vararg關鍵字jwt
fun becomeLong(vararg args: Int,str: String){
args.forEach { println("$str $it")
}
}
複製代碼
傳遞多個值給變長參數string
becomeLong(1,2,3,4,str = "jwt")
複製代碼
由於變長參數多個值的緣由,str這個參數須要用具名參數來消除歧義it
傳遞一個數組的值給變長參數,可使用 * 運算符來實現io
var array = intArrayOf(1,2,3)
becomeLong(*array,str = "jason")
複製代碼
使用 * 它會把數組元素分開依次傳給變長參數
Kotlin的異常的捕獲也是經過try-catch塊來捕獲的
舉個栗子,一目瞭然:
fun main() {
var args: Array<String> = Array(3){"0"} //初始化數組,構造方法的參數(size: Int, init: (Int) -> T)
args.set(0,"2")
args.set(1,"1")
try {
var x = args[0].toInt()
var y = args[1].toInt()
println("$x + $y = ${sum(x,y)}")
}catch (e: NumberFormatException){
println("須要輸入的數據類型是整數")
}catch (e: ArrayIndexOutOfBoundsException){
println("須要輸入兩個整數")
}catch (e: Exception){
println("捕捉到程序異常")
}finally {
println("求和計算完成")
}
}
fun sum(x: Int,y: Int): Int{
return x + y
}
複製代碼
對求和過程的出現的具體異常進行捕獲處理,不管結果如何最終都會執行finally方法塊。