Kotlin藝術探索之參數和異常

參數傳遞

默認參數的使用數組

能夠在方法的參數中設置值做爲它的默認參數值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方法塊。

相關文章
相關標籤/搜索