在 Kotlin 中獲取 forEach 迴圈的當前索引

Kailash Vaviya 2024年2月15日
  1. 在 Kotlin 中使用 forEachIndexed()forEach 迴圈中獲取專案的當前索引
  2. 在 Kotlin 中使用 withIndex()forEach 迴圈中獲取專案的當前索引
  3. 在 Kotlin 中使用 IndicesforEach 迴圈中獲取專案的當前索引
  4. 在 Kotlin 中使用 filterIndexed() 獲取陣列項的索引
在 Kotlin 中獲取 forEach 迴圈的當前索引

瞭解 forEach 迴圈中專案的當前索引可以幫助你找到要查詢的專案的位置。本文將通過不同的方式來查詢 forEach 迴圈的當前索引。

有三種不同的方法可以得到我們想要的,它們是:

  1. 使用 forEachIndexed()
  2. 使用 withIndex()
  3. 使用 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 ")
    }
}

輸出:

使用 forEachIndexed 獲取 Kotlin 中的當前索引

在 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 中使用 withIndex 獲取當前索引

在 Kotlin 中使用 IndicesforEach 迴圈中獲取專案的當前索引

我們還可以使用 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 中使用索引獲取當前索引

在 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) }
}

輸出:

在 Kotlin 中使用 filterIndexed 獲取特定索引的值

作者: Kailash Vaviya
Kailash Vaviya avatar Kailash Vaviya avatar

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