Triple en Kotlin

En programación, llamamos funciones para realizar una tarea particular. Lo mejor de la función es que podemos llamarla cualquier cantidad de veces y devuelve algún valor después del cálculo, es decir, si tenemos la función de sum() , siempre devuelve la suma de los dos números ingresados. Pero, las funciones tienen algunas limitaciones, como que la función devuelve solo un valor a la vez. Si es necesario devolver más de un valor de diferentes tipos de datos, entonces podemos crear una clase y declarar todas las variables que queremos devolver de la función y luego crear un objeto de la clase y recopilar fácilmente todos los valores devueltos en una lista. el problema principales que si hay tantas funciones en el programa que devuelven más de un valor a la vez, entonces tenemos que crear una clase separada para todas esas funciones y finalmente usar esa clase. Este proceso aumenta la verbosidad y la complejidad del programa. Para hacer frente a este tipo de problemas, Kotlin introdujo el concepto de Par y Triple

¿Qué es Triple? 

El lenguaje Kotlin proporciona un tipo de datos simple para almacenar tres valores en una sola instancia. Esto se puede hacer usando una clase de datos conocida como Triple . Es una clase genérica simple que almacena tres valores, no hay un significado valioso de la relación entre los tres valores. La comparación entre dos objetos Triple se realiza sobre la base de valores , es decir, dos Triples son iguales solo si los tres componentes son iguales. 

Definición de clase: 

data class Triple<out A, out B, out C> : Serializable

Hay tres parámetros: 

  • A – tipo del primer valor
  • B – tipo del segundo valor
  • C – tipo del tercer valor

Constructor

En Kotlin, el constructor es una función miembro especial que se invoca cuando se crea un objeto de la clase principalmente para inicializar variables o propiedades. Para crear una nueva instancia del Triple usamos: 

Triple(first: A, second: B, third: C)

Ejemplo de Kotlin de crear triple usando el constructor: 

Kotlin

fun main() {
    val (x, y, z) = Triple(1, "Geeks", 2.0)
    println(x)
    println(y)
    println(z)
}

Producción:  

1
Geeks
2.0

Propiedades

Podemos recibir los valores del triple en una sola variable o podemos usar las propiedades primera , segunda y tercera para extraer los valores. 

  • primero : este campo almacena el primer valor del par.
  • segundo : este campo almacena el segundo valor del par.
  • tercero : este campo almacena el tercer valor del par.

Programa Kotlin para recuperar los valores de Triple usando propiedades:

Kotlin

fun main() {
    // declare triple
    var triple = Triple("Hello Geeks",
                        "This is Kotlin tutorial",
                        listOf(10, 20, 30))
    println(triple.first)
    println(triple.second)
    println(triple.third)
}

Producción: 

Hello Geeks
This is Kotlin tutorial
[10, 20, 30]

Funciones

toString(): Esta función devuelve la string equivalente al Triple. 

fun toString(): String

Programa Kotlin de usar la función: 

Kotlin

fun main() {
    // first triple
    val triple = Triple(5, 5, 5)
    println("String representation is "+triple.toString())
     
      // second triple
    val triple2 = Triple("Geeks",
                         listOf("Praveen", "Gaurav", "Abhi"),
                         12345)
    print("Another string representation is "+ triple2.toString())
}

Producción: 

String representation is (5, 5, 5)
Another string representation is (Geeks, [Praveen, Gaurav, Abhi], 12345)

Funciones de extensión

Como hemos aprendido en artículos anteriores, las funciones de extensión brindan la posibilidad de agregar más funcionalidad a las clases existentes, sin heredarlas. 

toList(): Esta función devuelve el equivalente en Lista del Triple dado. 

fun <T>Triple<T, T, T>.toList(): List<T>

Programa Kotlin de usar la función extendida:

Kotlin

fun main() {
    // first triple
    var obj = Triple(1, 2, 3)
    val list1: List<Any> = obj.toList()
    println(list1)
     
      // second triple
    var obj2 = Triple("Hello", 2.0000 ,
                      listOf(10, 20, 30))
    val list2: List<Any> = obj2.toList()
    println(list2)
}

Producción: 

[1, 2, 3]
[Hello, 2.0, [10, 20, 30]]

Publicación traducida automáticamente

Artículo escrito por CharchitKapoor y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *