Kotlin藝術探索之參數和異常

參數傳遞

默認參數的使用

可以在方法的參數中設置值作爲它的默認參數值

fun reformat(str: String = "11",isTrue: Boolean = false){
    println(str)
    println(isTrue)
}

使用默認參數在調用的時候就可以不傳遞參數

//使用默認參數
reformat()

具名參數的使用

具名參數就是指定參數名對其賦值,這樣的好處就是在傳參數的時候不需要考慮一一對應,另外因爲Kotlin的參數傳遞的靈活性,在傳遞參數時很容易出現歧義,這時候可以通過具名參數來消除歧義。

//使用具名參數,可以指定具體的參數
reformat(isTrue = false,str = "a")

變長參數的使用

變長參數可以對一個參數賦多個值,需要用到vararg關鍵字

fun becomeLong(vararg args: Int,str: String){
    args.forEach { println("$str $it")
    }
}

傳遞多個值給變長參數

becomeLong(1,2,3,4,str = "jwt")

因爲變長參數多個值的原因,str這個參數需要用具名參數來消除歧義

傳遞一個數組的值給變長參數,可以使用 * 運算符來實現

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方法塊。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章