associateWith所在位置是kotlin.collections.associateWith,其相关用法介绍如下。

用法一

inline fun <K, V> Array<out K>.associateWith(
    valueSelector: (K) -> V
): Map<K, V>
inline fun <V> ByteArray.associateWith(
    valueSelector: (Byte) -> V
): Map<Byte, V>
inline fun <V> ShortArray.associateWith(
    valueSelector: (Short) -> V
): Map<Short, V>
inline fun <V> IntArray.associateWith(
    valueSelector: (Int) -> V
): Map<Int, V>
inline fun <V> LongArray.associateWith(
    valueSelector: (Long) -> V
): Map<Long, V>
inline fun <V> FloatArray.associateWith(
    valueSelector: (Float) -> V
): Map<Float, V>
inline fun <V> DoubleArray.associateWith(
    valueSelector: (Double) -> V
): Map<Double, V>
inline fun <V> BooleanArray.associateWith(
    valueSelector: (Boolean) -> V
): Map<Boolean, V>
inline fun <V> CharArray.associateWith(
    valueSelector: (Char) -> V
): Map<Char, V>
@ExperimentalUnsignedTypes inline fun <V> UIntArray.associateWith(
    valueSelector: (UInt) -> V
): Map<UInt, V>
@ExperimentalUnsignedTypes inline fun <V> ULongArray.associateWith(
    valueSelector: (ULong) -> V
): Map<ULong, V>
@ExperimentalUnsignedTypes inline fun <V> UByteArray.associateWith(
    valueSelector: (UByte) -> V
): Map<UByte, V>
@ExperimentalUnsignedTypes inline fun <V> UShortArray.associateWith(
    valueSelector: (UShort) -> V
): Map<UShort, V>

返回一个Map,其中键是给定数组中的元素,值由应用于每个元素的valueSelector 函数生成。

如果任何两个元素相等,则将最后一个元素添加到Map中。

返回的映射保留原始数组的条目迭代顺序。

例子:

import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
val words = listOf("a", "abc", "ab", "def", "abcd")
val withLength = words.associateWith { it.length }
println(withLength.keys) // [a, abc, ab, def, abcd]
println(withLength.values) // [1, 3, 2, 3, 4]
//sampleEnd
}

输出:

[a, abc, ab, def, abcd]
[1, 3, 2, 3, 4]

用法二

inline fun <K, V> Iterable<K>.associateWith(
    valueSelector: (K) -> V
): Map<K, V>

返回一个Map,其中键是给定集合中的元素,值由应用于每个元素的valueSelector 函数生成。

如果任何两个元素相等,则将最后一个元素添加到Map中。

返回的映射保留原始集合的条目迭代顺序。

例子:

import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
val words = listOf("a", "abc", "ab", "def", "abcd")
val withLength = words.associateWith { it.length }
println(withLength.keys) // [a, abc, ab, def, abcd]
println(withLength.values) // [1, 3, 2, 3, 4]
//sampleEnd
}

输出:

[a, abc, ab, def, abcd]
[1, 3, 2, 3, 4]