原文地址: 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
列表中去除重複的元素。