Kotlin é uma linguagem de programação que traz todos os poderes das linguagens de programação modernas para o desenvolvimento do Android. Neste artigo, discutiremos sobre seus dois recursos interessantes, ou seja, Type Aliases e Inline Classes.

Digite aliases

Vamos supor que você esteja criando um projeto em que definiu duas classes com o mesmo nome, mas pacotes diferentes. Em caso de necessidade, você precisa usar o formato de nome de classe de ponto de nome de pacote inteiro para o segundo. Por exemplo, você tem uma classe chamada 'geek', uma no "com.gfg.apps"pacote e outra dentro "com.gfgpractice.apps", você pode usar uma delas usando a importação simples e se quiser usar a segunda, terá que usar o nome completo do pacote "com.gfgpractie.apps.geek".
Aqui, aliases de tipo entram em cena, aliases de tipo fornecem um método para definir um nome alternativo para nosso nome de classe complexo ou muito longo. Os apelidos de tipo não introduzem novos tipos. Eles são iguais aos tipos subjacentes correspondentes.

Em nosso cenário acima, podemos fazer:

typealias geek = com.gfg.apps.geek 

e usar o nome geek em vez de “com.gfg.apps.geek” em qualquer lugar que quisermos, sem definir a versão mais longa sempre que o usarmos.

Exemplo de Kotlin para demonstrar aliases de tipo -

// 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)
}
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()) 
}

Saída:

Hello World!