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

用法一

inline fun <K, M : MutableMap<in K, in Char>> CharSequence.associateByTo(
    destination: M, 
    keySelector: (Char) -> K
): M

使用鍵值對填充並返回 destination 可變映射,其中鍵由應用於給定字符序列的每個字符的 keySelector 函數提供,值是字符本身。

如果任意兩個字符具有由keySelector 返回的相同鍵,則最後一個將添加到Map中。

例子:

import java.util.Locale
import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
val string = "bonne journée"
// associate each character by its code
val result = mutableMapOf<Int, Char>()
string.associateByTo(result) { char -> char.code }
// notice each char code occurs only once
println(result) // {98=b, 111=o, 110=n, 101=e, 32= , 106=j, 117=u, 114=r, 233=é}
//sampleEnd
}

輸出:

{98=b, 111=o, 110=n, 101=e, 32= , 106=j, 117=u, 114=r, 233=é}

用法二

inline fun <K, V, M : MutableMap<in K, in V>> CharSequence.associateByTo(
    destination: M, 
    keySelector: (Char) -> K, 
    valueTransform: (Char) -> V
): M

使用鍵值對填充並返回destination 可變映射,其中鍵由keySelector 函數提供,值由應用於給定字符序列的字符的valueTransform 函數提供。

如果任意兩個字符具有由keySelector 返回的相同鍵,則最後一個將添加到Map中。

例子:

import java.util.Locale
import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
val string = "bonne journée"
// associate each character by the code of its upper case equivalent and transform the character to upper case
val result = mutableMapOf<Int, Char>()
string.associateByTo(result, { char -> char.uppercaseChar().code }, { char -> char.uppercaseChar() })
// notice each char code occurs only once
println(result) // {66=B, 79=O, 78=N, 69=E, 32= , 74=J, 85=U, 82=R, 201=É}
//sampleEnd
}

輸出:

{66=B, 79=O, 78=N, 69=E, 32= , 74=J, 85=U, 82=R, 201=É}