quarta-feira, 29 de abril de 2020

Já tomou sua dose de Kotlin hoje? Extension functions!


#kotlin #programming #dev #mobile #android
Kotlin pode ser "esquisita", mas tem recursos sensacionais, como as Extension Functions, que permitem estender funcionalidade de classes, mesmo da API da linguagem, sem ter que derivar!





Neste exemplo, eu estendo a classe String adicionando um método que remove apenas as vogais!


fun String.noVowels(): String {
    val vogais = listOf('a','e','i','o','u')
    var saida : MutableList<String> = mutableListOf()
    for (letra in this) {
        if (letra !in vogais)
            saida.add(letra.toString())
    }
    return saida.joinToString(separator="")
}

fun main() {
    val nome = "Cleuton Sampaio" 
    println(nome.noVowels()) //Cltn Smp
}

Como podem ver, a função "noVowels" foi atribuída à classe String (pelo nome da função você percebe isso) e eu posso usá-la como se fosse um método desta classe.

Qualquer classe, seja ela Java ou Kotlin, ou da API, pode ser estendida desta maneira.

Nenhum comentário:

Postar um comentário