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

用法:

@JvmName("flatMapIndexedIterable") fun <T, R> Sequence<T>.flatMapIndexed(
    transform: (index: Int, T) -> Iterable<R>
): Sequence<R>
@JvmName("flatMapIndexedSequence") fun <T, R> Sequence<T>.flatMapIndexed(
    transform: (index: Int, T) -> Sequence<R>
): Sequence<R>

返回由在每個元素上調用的 transform 函數的結果產生的所有元素的單個序列及其在原始序列中的索引。

操作是 intermediatestateless

例子:

import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
val data: List<String> = listOf("Abcd", "efgh", "Klmn")
val selected: List<Boolean> = data.map { it.any { c -> c.isUpperCase() } }
val result = data.flatMapIndexed { index, s -> if (selected[index]) s.toList() else emptyList() }
println(result) // [A, b, c, d, K, l, m, n]
//sampleEnd
}

輸出:

[A, b, c, d, K, l, m, n]