在 Kotlin 中獲取 forEach 迴圈的當前索引
-
在 Kotlin 中使用
forEachIndexed()
在forEach
迴圈中獲取專案的當前索引 -
在 Kotlin 中使用
withIndex()
在forEach
迴圈中獲取專案的當前索引 -
在 Kotlin 中使用
Indices
在forEach
迴圈中獲取專案的當前索引 -
在 Kotlin 中使用
filterIndexed()
獲取陣列項的索引
瞭解 forEach
迴圈中專案的當前索引可以幫助你找到要查詢的專案的位置。本文將通過不同的方式來查詢 forEach
迴圈的當前索引。
有三種不同的方法可以得到我們想要的,它們是:
- 使用
forEachIndexed()
- 使用
withIndex()
- 使用
indices
在 Kotlin 中使用 forEachIndexed()
在 forEach
迴圈中獲取專案的當前索引
我們可以使用 forEachIndexed()
函式來檢索當前索引。它是一個接受陣列作為輸入的行內函數。
forEachIndexed()
輸出索引項及其值。
使用 forEachIndexed()
函式的語法如下。
collection.forEachIndexed { index, element ->
// ...
}
讓我們舉個例子來了解它是如何工作的。我們將建立一個陣列 Student
並使用 forEachIndexed()
遍歷它以獲取索引和值作為以下示例中的輸出。
fun main() {
var Student = listOf("Virat", "David", "Steve", "Joe", "Chris")
Student.forEachIndexed {index, element ->
println("The index is $index and the item is $element ")
}
}
輸出:
在 Kotlin 中使用 withIndex()
在 forEach
迴圈中獲取專案的當前索引
除了 forEachIndexed()
,我們還可以使用 withIndex()
函式在 Kotlin 的 forEach
迴圈中獲取專案的當前索引。
它是一個庫函式,允許通過迴圈訪問索引和值。
我們將再次使用相同的陣列,但這次使用 withIndex()
函式來訪問 Student
陣列的索引和值。
fun main() {
var Student = listOf("Virat", "David", "Steve", "Joe", "Chris")
for ((index, element) in Student.withIndex()) {
println("The index is $index and the item is $element ")
}
}
輸出:
在 Kotlin 中使用 Indices
在 forEach
迴圈中獲取專案的當前索引
我們還可以使用 indices
關鍵字來獲取當前索引。使用 indices
的語法如下。
for (i in array.indices) {
print(array[i])
}
讓我們在我們的 Student
陣列中使用這個語法來訪問索引和值。
fun main(args : Array<String>){
val Student = arrayOf("Virat", "David", "Steve", "Joe", "Chris")
for (i in Student.indices){
println("Student[$i]: ${Student[i]}")
}
}
輸出:
在 Kotlin 中使用 filterIndexed()
獲取陣列項的索引
我們可以使用上述函式獲取當前索引。但是,如果我們只想訪問特定的索引而不是所有索引怎麼辦。
我們可以使用 filterIndexed()
函式來做到這一點。
filterIndexed()
函式接受一個條件作為引數。根據我們傳遞的條件,該函式可以過濾輸出以顯示所需的索引。
讓我們使用 filterIndexed()
函式僅訪問 Student
陣列中偶數索引處的值。
fun main(args : Array<String>){
val Student = arrayOf("Virat", "David", "Steve", "Joe", "Chris")
.filterIndexed { index, _ -> index % 2 == 0 }
.forEach { println(it) }
}
輸出:
Kailash Vaviya is a freelance writer who started writing in 2019 and has never stopped since then as he fell in love with it. He has a soft corner for technology and likes to read, learn, and write about it. His content is focused on providing information to help build a brand presence and gain engagement.
LinkedIn