Los data class en Kotlin para almacenar y procesar datos de manera sencilla

- Andrés Cruz

In english

Los data class en Kotlin para almacenar y procesar datos de manera sencilla

Siguiendo con los tutoriales de Kotlin, hoy veremos los data class Pair en Kotlin, que simplemente son una representación genérica (cualquier tipo de datos o clases) de dos valores (pares); son una especie de tupla pero con algunas variantes.

Los data class Pair son una estructura que permite guardar dos valores.

Los valores pares son excelente cuando queremos guardar parejas de datos; y así de simple, es una estructura que nos sirve solo para eso; el método constructor o mejor dicho la estructura básica de un valor par en Kotlin luce como el siguiente:

Pair(first: A, second: B)

El valor first corresponde al primer valor y el de second, como podrás imaginar.

Ya estando en la práctica, para emplear los valores pares en Kotlin es tan fácil como hacer lo siguiente:

var pair = Pair("Kotlin Pair",2)

Como puedes ver, no estamos obligados a tener valores pares del mismo tipo, son independientes y pueden tomar cualquier valor que necesitemos.

Palabra reservada Pair o to para crear valores pares

También podemos crear valores pares empleando la variable reservada to de la siguiente forma:

var pair = "Kotlin Pair" to 2

Esto en Android es muy útil ya que podemos emplear los Pair Para guardar una pareja de valores, por ejemplo un usuario y contraseña o cualquier pareja de valores que tengan alguna relación.

¿Cómo acceder a los valores Pair en Koltin?

Ya teniendo claro para qué sirve la estructura de los Pair en Kotlin, lo siguiente que nos interesa saber es cómo acceder a cada uno de estos valores embebidos dentro de un data class Pair; para esto se emplean las palabras reservadas first y second respectivamente de la siguiente forma; teniendo nuestra variable llamada pair definida de cualquiera de las formas anteriores:

println(pair.first) //Kotlin
println(pair.second) //Pair2

Y obtenemos como salida:

Kotlin 
Pair2

También podemos emplear los métodos component1() y component2() respectivamente para obtener la misma salida anterior:

println(pair.component1()) //Kotlin
println(pair.component2()) //Pair2

Para cada uno de los println respectivamente.

Descomposición de los valores par Pair en Kotlin

También podemos separar o descomponer los valores de los pares en variables individuales e independientes de la siguiente forma; tal cual hicimos antes con los mismos data class en la entrada anterior:

val (user, password) = Pair("usuario", "contrasena") 
println(user) // usuario
println(password) // contrasena

Y se obtiene:

usuario
contrasena

Recuerda siempre revisar la documentación oficial en: Kotlin: Pair y Kotlin: To.

Métodos de los valores pares

Los Pair en Kotlin cuentan con un par de métodos que podemos emplear para emplear toda la estructura al 100%; el primero de ellos es el toString que imprime un string con los valores dos valores:

var pair = Pair("Kotlin Pair",2)

fun main(args: Array<String>) {
    println(pair.toString()) // imprime (Kotlin Pair, 2)
}

Y también tenemos el método toList() que nos retorna una lista con ambos valores pares:

var pair = Pair("Kotlin Pair",2)

fun main(args: Array<String>) {
    println(pair.toList()) // imprime [Kotlin Pair, 2]
}

Inspiración para emplear valores pares

Con los valores pares podemos hacer muchas cosas, hay muchas estructuras que nos quedan perfecto emplear un Pair de Kotlin; por ejemplo la ubicación de una pareja de puntos en un plano 2D:

data class Punto<T>(var x: T, var y: T)

Que pueden ser serializables para que puedas colocar cualquier valor, como enteros o flotantes; podemos emplearlo como pareja como hicimos anteriormente para una pareja de usuario y contraseña, también podemos emplearlo para configurar una URL y un único parámetro:

var url = Pair("https://twitter.com/","ACY291190")
Andrés Cruz

Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter

Andrés Cruz En Udemy

Acepto recibir anuncios de interes sobre este Blog.