Kotlin藝術探索之引數和異常

2021-09-24 07:47:46 字數 1352 閱讀 7481

預設引數的使用

可以在方法的引數中設定值作為它的預設引數值

fun reformat(str: string = "11",istrue: boolean = false)

複製**

使用預設引數在呼叫的時候就可以不傳遞引數

//使用預設引數

reformat()

複製**

具名引數的使用

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

//使用具名引數,可以指定具體的引數

reformat(istrue = false,str = "a")

複製**

變長引數的使用

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

fun becomelong(vararg args: int,str: string)

}複製**

傳遞多個值給變長引數

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

複製**

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

傳遞乙個陣列的值給變長引數,可以使用 * 運算子來實現

var array = intarrayof(1,2,3)

becomelong(*array,str = "jason")

複製**

使用 * 它會把陣列元素分開依次傳給變長引數

kotlin的異常的捕獲也是通過try-catch塊來捕獲的

舉個栗子,一目了然:

fun main

() //初始化陣列,構造方法的引數(size: int, init: (int) -> t)

args.set(0,"2")

args.set(1,"1")

try ")

}catch (e: numberformatexception)catch (e: arrayindexoutofbound***ception)catch (e: exception)finally

}fun sum(x: int,y: int): int

複製**

對求和過程的出現的具體異常進行捕獲處理,無論結果如何最終都會執行finally方法塊。

Kotlin學習之 4 3 4 返回和中止迴圈

kotlin 有3中結構化的跳轉語句 所有這些表示式都可以被用來組成更大的表示式 val s person.name returnkotlin中的任何表示式都可以被 標記成乙個標籤label,標籤由乙個識別符號和緊跟的 組成,例如 abc foobar 是合法的標籤命名。想要把乙個表示式定義成標籤,...

Kotlin 類補充篇之inline 和委託

標準委託 內聯類意味著類的資料會被 內聯 到該類使用的地方 適用於業務邏輯需要用到某種型別的包裝器,但是不想有額外的堆記憶體分配 1.inline 修飾類inline class password val value string 使用 不存在 password 類的真實例項物件 將字串內聯到變數 ...

函式之不定長引數和預設引數

在定義函式的時候 某個形參有自己的預設值 初始值 在定義函式的時候 如果某個形參是預設引數 那麼後面的形參都應該為預設引數 如果乙個形參為預設引數 那麼在呼叫函式的時候 可以不傳實參那麼缺省會使用形參的初始值 預設值 如果在預設引數的位置傳遞了乙個實參 那麼實參的值 會覆蓋預設引數的值 def my...