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