2023-12-08|閱讀時間 ‧ 約 3 分鐘

【Kotlin 入門指南】kotlin 預先條件函數 (Precondition functions)

【Kotlin 入門指南】系列文章目錄:https://bit.ly/3t8awwL
Kotlin 線上課程教學影片:https://bit.ly/3qJ5a5Q

預先條件函數

在 Kotlin 中,預先條件函數(Preconditions)是維持程式碼安全的關鍵。這些函數位於標準函式庫中,用於確保資料的有效性及防範錯誤。我們將介紹幾種常見的預先條件函數,幫助你更有效地確保程式的穩定性和可靠性。

checkNotNull

checkNotNull 函數用於檢查參數是否為 null。當傳入的參數為 null 時,此函數將拋出 IllegalStateException 例外,否則返回非空值。範例如下:

fun printLength(s: String?) {
val length = checkNotNull(s).length
println(length)
}

在這個範例中,了解如何使用 checkNotNull 函數,以確保參數 s 不為 null。這樣我們可以安全地訪問 slength 屬性。

require

require 函數用於確認特定條件是否成立。如果條件不符合,將拋出一個帶有錯誤訊息的例外。範例如下:

fun divide(a: Int, b: Int) {
require(b != 0) { "分母不能為 0" }
println(a / b)
}

在這個範例中,了解如何使用 require 函數來確保參數 b 不為零,以避免除以零的錯誤。

requireNotNull

requireNotNull 函數用於檢查參數是否為 null,若為 null 則拋出 IllegalArgumentException。範例如下:

fun main() {
val name: String? = null
val nonNullName = requireNotNull(name) { "資料不能為空值" }
println(nonNullName)
}

在這個範例中,我們確保 name 不為 null,否則將拋出帶有自訂錯誤訊息的例外。

assert

assert 函數用於檢驗程式中的條件是否為真。若條件不成立,將拋出 AssertionError 例外。範例如下:

fun main() {
val x = 2
val y = 3
assert(x > 0)
assert(x < 0)
assert(x == 2) { "x 應該是 2" }
assert(x != 2) { "x 不應該是 2" }
assert(x + y == 5) { "x + y 應該等於 5" }
}

在這個範例中,了解 assert 函數如何用於驗證條件的真假。在實際程式中,assert 可以用來驗證輸入或中間結果是否符合預期。

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.