Alias ​​de tipo frente a clases en línea

Kotlin es un lenguaje de programación que trae todos los poderes de los lenguajes de programación modernos al desarrollo de Android. En este artículo, discutiremos sobre sus dos características interesantes, a saber, alias de tipo y clases en línea.
 

Tipo de alias

Supongamos que está creando un proyecto en el que definió dos clases con el mismo nombre pero diferentes paquetes. En caso de necesidad, debe usar el formato de nombre de clase de punto de nombre de paquete completo para el segundo. Por ejemplo, tiene una clase llamada ‘geek’, una en el paquete «com.gfg.apps» y otra en «com.gfgpractice.apps», puede usar una de ellas usando la importación simple y si desea usar la segunda, tiene que usar el nombre completo del paquete como «com.gfgpractice.apps.geek». 
Aquí, Type Aliases entra en escena, type aliases proporciona un método para definir un nombre alternativo para nuestro nombre de clase complejo o demasiado largo. Los alias de tipo no introducen nuevos tipos. Son los mismos que los tipos subyacentes correspondientes. 
En nuestro escenario anterior, podemos hacer: 
 

typealias geek = com.gfg.apps.geek 

y usar el nombre geek en lugar de «com.gfg.apps.geek» en cualquier lugar que queramos sin definir la versión más larga cada vez que lo usamos.
Ejemplo de Kotlin para demostrar alias de tipo – 
 

Java

// here we define a type alias named key_values
// which will take two parameters int and string
typealias Key_values = Pair<Int, String>
fun main() {
    // we are setting two games but we don't
    // have to define Pair each time while using it
    val game1 = Key_values( 1, "Cricket")
    //instead we can directly use our type alias Key_values.
    val game2 = Key_values(2, "Football")
 
    println(game1)
    println(game2)
}

Producción: 
 

(1, Cricket)
(2, Football)

Clases en línea

Las clases en línea agregan las características de TypeAliases con rango de valores de tipos de datos primitivos. En algunas situaciones, es necesario crear un contenedor en torno a un tipo específico que dará como resultado una asignación de almacenamiento dinámico adicional durante el tiempo de ejecución. Para resolver este problema, se introduce el concepto de clases en línea. En este concepto, los datos de la clase están «en línea» en sus usos.
Nota: Las clases en línea introducen un tipo verdaderamente nuevo, a diferencia de los alias de tipo que solo introducen un nombre alternativo (alias) para un tipo existente.
Programa Kotlin para demostrar la clase en línea – 
 

Java

interface Print {
    fun geekPrint(): String
}
 
inline class Value(val s: String) : Print {
    override fun geekPrint(): String = "Hello $s!"
}   
 
fun main() {
    val name = Value("World")
    println(name.geekPrint())
}

Producción: 
 

Hello World!

Publicación traducida automáticamente

Artículo escrito por Abhishek7 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 *