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]