withIndex所在位置是kotlin.collections.withIndex,其相關用法介紹如下。

用法一

fun <T> Array<out T>.withIndex(): Iterable<IndexedValue<T>>
fun ByteArray.withIndex(): Iterable<IndexedValue<Byte>>
fun ShortArray.withIndex(): Iterable<IndexedValue<Short>>
fun IntArray.withIndex(): Iterable<IndexedValue<Int>>
fun LongArray.withIndex(): Iterable<IndexedValue<Long>>
fun FloatArray.withIndex(): Iterable<IndexedValue<Float>>
fun DoubleArray.withIndex(): Iterable<IndexedValue<Double>>
fun BooleanArray.withIndex(): Iterable<IndexedValue<Boolean>>
fun CharArray.withIndex(): Iterable<IndexedValue<Char>>
@ExperimentalUnsignedTypes fun UIntArray.withIndex(): Iterable<IndexedValue<UInt>>
@ExperimentalUnsignedTypes fun ULongArray.withIndex(): Iterable<IndexedValue<ULong>>
@ExperimentalUnsignedTypes fun UByteArray.withIndex(): Iterable<IndexedValue<UByte>>
@ExperimentalUnsignedTypes fun UShortArray.withIndex(): Iterable<IndexedValue<UShort>>

返回一個惰性Iterable,它將原始數組的每個元素包裝成一個IndexedValue,其中包含該元素的索引和元素本身。

用法二

fun <T> Iterable<T>.withIndex(): Iterable<IndexedValue<T>>

返回一個惰性 Iterable,它將原始集合的每個元素包裝到一個包含該元素索引和元素本身的 IndexedValue 中。

用法三

fun <T> Iterator<T>.withIndex(): Iterator<IndexedValue<T>>

返回一個Iterator,它將原始迭代器生成的每個元素包裝到一個包含該元素索引和元素本身的IndexedValue中。

例子:

import java.util.*

fun main(args: Array<String>) {
//sampleStart
val iterator = ('a'..'c').iterator()

for ((index, value) in iterator.withIndex()) {
    println("The element at $index is $value")
}
//sampleEnd
}

輸出:

The element at 0 is a
The element at 1 is b
The element at 2 is c