Kotlin 常用語法糖記錄

2023-07-07 06:00:51

原文地址: Kotlin 常用語法糖記錄 - Stars-One的雜貨小窩

當使用 Kotlin 程式設計時,有一些常用的函數可以幫助我們簡化程式碼並提高開發效率。

稍微列舉下常用的方法

runCatching

runCatching 是一個用於處理可能引發異常的程式碼塊的函數。它提供了一種更簡潔和安全的方式來執行可能出現異常的操作。

val result = runCatching {
    // 可能引發異常的程式碼邏輯
}

if (result.isSuccess) {
    val value = result.getOrNull() // 獲取操作結果(如果沒有異常)
    // 處理成功的情況
} else {
    val exception = result.exceptionOrNull() // 獲取異常(如果有異常)
    // 處理異常的情況
}

let 函數

  • let 函數允許您在特定上下文中執行操作,並將結果作為閉包引數傳遞。
  • 常用於處理可空型別,避免空指標異常。
  • 例如:stringValue?.let { println(it) },在 stringValue 不為空的情況下執行操作。

2. apply 函數:

  • apply 函數允許您在物件初始化期間執行一系列操作,並返回該物件自身。
  • 常用於對物件進行屬性賦值操作。
  • 例如:val person = Person().apply { name = "John"; age = 25 },建立一個 Person 物件,並初始化其屬性。

3. with 函數:

  • with 函數允許您在特定上下文中執行一系列操作,無需顯式存取上下文物件。
  • 常用於對一個物件的多個屬性進行操作。
  • 例如:with(person) { name = "John"; age = 25 },對 person 物件的屬性進行賦值操作。

4. run 函數:

  • run 函數允許您在特定上下文中執行一系列操作,並返回最後一個表示式的結果。
  • 常用於執行臨時程式碼塊並獲取結果。
  • 例如:val result = run { val x = 10; val y = 20; x + y },執行臨時程式碼塊並將結果賦值給 result

5. also 函數:

  • also 函數允許您在特定上下文中執行操作,並返回上下文物件自身。
  • 常用於執行附加操作(如列印紀錄檔、修改物件狀態等)。
  • 例如:numbers.also { println("Original list: $it") }.add(4),在向 numbers 列表新增元素前列印原始列表。

6. takeIf 函數:

  • takeIf 函數允許您基於條件判斷是否接收物件。
  • 如果條件為真,則返回物件本身;否則返回 null
  • 常用於條件判斷操作。
  • 例如:val isEven = number.takeIf { it % 2 == 0 },如果 number 是偶數,則返回 number,否則返回 null

7. takeUnless 函數:

  • takeUnless 函數允許您基於條件判斷是否不接收物件。
  • 如果條件為真,則返回 null;否則返回物件本身。
  • 常用於條件判斷操作。
  • 例如:val isOdd = number.takeUnless { it % 2 == 0 },如果 number 是奇數,則返回 number,否則返回 null

8. map 函數:

  • map 函數允許您對集合中的每個元素執行操作,並返回操作結果組成的新集合。
  • 常用於對集合進行轉換操作。
  • 例如:val squaredNumbers = numbers.map { it * it },將 numbers 列表中的每個元素平方,返回一個新列表。

9. filter 函數:

  • filter 函數允許您基於特定條件篩選集合中的元素,並返回滿足條件的元素組成的新集合。
  • 常用於篩選集合中的元素。
  • 例如:val evenNumbers = numbers.filter { it % 2 == 0 },返回 numbers 列表中的所有偶數。

10. fold 函數

  • fold 函數允許您對集合中的元素進行累積操作,並返回最終的累積結果。
  • 常用於求和、求積等累積操作。
  • 例如:val sum = numbers.fold(0) { acc, number -> acc + number },對 numbers 列表中的元素求和。

下面的則是一些集合的方法

1. repeat 函數:

  • repeat 函數允許您重複執行指定次數的操作。
  • 常用於需要多次執行相同的程式碼塊。
  • 例如:repeat(3) { println("Hello") },列印 "Hello" 三次。

2. take 函數:

  • take 函數允許您從集合中獲取指定數量的元素,並返回一個新的集合。
  • 常用於獲取集合的前 n 個元素。
  • 例如:val firstThree = numbers.take(3),獲取 numbers 列表的前三個元素。

3. drop 函數:

  • drop 函數允許您跳過集合中的指定數量的元素,並返回一個新的集合。
  • 常用於跳過集合的前 n 個元素。
  • 例如:val remaining = numbers.drop(3),獲取 numbers 列表中除前三個元素外的所有元素。

4. any 函數:

  • any 函數允許您檢查集合中是否至少存在一個滿足特定條件的元素。
  • 常用於檢查集合中是否存在滿足某種條件的元素。
  • 例如:val hasEvenNumber = numbers.any { it % 2 == 0 },檢查 numbers 列表中是否存在偶數。

5. all 函數:

  • all 函數允許您檢查集合中的所有元素是否都滿足特定條件。
  • 常用於檢查集合中的所有元素是否滿足某種條件。
  • 例如:val allEven = numbers.all { it % 2 == 0 },檢查 numbers 列表中的所有元素是否都是偶數。

6. find 函數:

  • find 函數允許您找到集合中滿足特定條件的第一個元素,並返回該元素。
  • 常用於查詢集合中的符合某種條件的元素。
  • 例如:val firstEvenNumber = numbers.find { it % 2 == 0 },找到 numbers 列表中的第一個偶數。

7. count 函數:

  • count 函數允許您計算集合中滿足特定條件的元素個數。
  • 常用於統計集合中滿足某種條件的元素個數。
  • 例如:val evenCount = numbers.count { it % 2 == 0 },計算 numbers 列表中的偶數個數。

8. distinct 函數:

  • distinct 函數允許您從集合中去除重複的元素,並返回一個新的集合。
  • 常用於去除集合中的重複元素。
  • 例如:val uniqueNumbers = numbers.distinct(),從 numbers 列表中去除重複的元素。