Icono del sitio Develou

Función associate En Kotlin

En este tutorial estudiaremos el uso de la función associate en Kotlin a fin de construir un mapa a partir de una colección de datos e indicando una función lambda de transformación.

Función associate()

La función de extensión associate() retorna un mapa de pares clave-valor que son producidos por una función de transformación. Dicha función usa como cuerpo instancias de la clase Pair<K, V> que son consumidas para producir los pares.

// Sintaxis de associate() en arrays
inline fun <T, K, V> Array<out T>.associate(
    transform: (T) -> Pair<K, V>
): Map<K, V>

// Sintaxis de associate() en iterables
inline fun <T, K, V> Iterable<T>.associate(
    transform: (T) -> Pair<K, V>
): Map<K, V>

Aspectos a destacar de associate():

Considera la siguiente ilustración, donde se muestra un arreglo A = [a, b, c, d] y se aplica la función associate() con el fin de generar un mapa.

La función de transformación produce claves con los caracteres y valores con su código entero multiplicado por dos.

La representación de este ejemplo en Kotlin se aplica en las siguientes sentencias:

fun main() {
    val letters = charArrayOf('a', 'b', 'c', 'd')
    val lettersAndCodesx2 = letters.associate { it to it.toInt() * 2 }
    println(lettersAndCodesx2)
}

Salida:

{a=194, b=196, c=198, d=200}

La función lambda de transformación pasada en associate() muestra que los pares producidos usan como clave la referencia it y como valor a la conversión entera de it por 2.

Recuerda que la función infix to() produce el mismo resultado que el constructor Pair(it, it.toInt() * 2).

Salir de la versión móvil