Formação Oracle DBA Completa


Kotlin – Funções Estendidas

Kotlin – Funções Estendidas

14 de maio de 2019 1 Por Ramos de Souza Janones
Powered by Rock Convert

Funções estendidas oferecem a capacidade de aumentar uma classe com uma nova funcionalidade sem precisar estendê-la diretamente.

Isso é feito por meio de declarações especiais chamadas extensões, também chamadas de  Extension Functions .

Você pode adicionar comportamentos a uma classe sem estendê-la diretamente. Através de uma função de extensão, você pode chamar uma função de um objeto como se fosse parte de sua classe.

Poderíamos criar uma função de extensão para String chamada novaFuncao e chamá-la de minhaString.novaFuncao(). Como sabemos, novaFuncao não é uma função de String, mas sintaticamente ela é.

Powered by Rock Convert

Então, como isso funciona? Você só precisa adicionar a função a classe String conforme exemplo abaixo:

StringExtensions.kt
fun String.novaFuncao(): String {
    // implementacao
}

Aprofundando em Extesion Function do Kotlin

Você as escreve como funções normais e ela funciona como se fosse uma função do tipo, ou seja, como se fosse um método que aquele tipo possui.

Vai gostar: Motivos para trocar o Java pelo Kotlin ainda hoje | Movile

VAI GOSTAR: Guia Jurídico Definitivo para Startups

VEJA TAMBÉM: Sucesso na Carreira com o LinkedIn

RECOMENDAMOS: Curso de Desenvolvimento de Games Completo

LEIA: Como Aprender Java e ir além do mercado de trabalho tradicional


this pode ser usado como em um método normal para acessar o objeto que está sendo manipulado. Mas há limitações do que pode acessar nele. Apenas membros públicos podem ser acessados já que a função é externa e não tem privilégios de acesso extras.

Conforme a documentação se quiser fazer um método que possa ser usado em qualquer MutableList de um Int que troque dados de dois índices faria assim:

fun MutableList<Int>.swap(index1: Int, index2: Int) {
    val tmp = this[index1] // 'this' corresponds to the list
    this[index1] = this[index2]
    this[index2] = tmp
}

Assim poderia ser usado desta forma:

val l = mutableListOf(1, 2, 3)
l.swap(, 2)

Se Kotlin tivesse métodos estáticos normais (ela tem objetos de companhia que é essencialmente a mesma coisa) seria o mesmo que chamar

MutableList<Int>.swap(l, , 2)

neste caso o l seria passado como argumento para a função e este parâmetro seria acessado com this.

Leia também: Release do livro: Desenvolvedor Kotlin Android – Bibliotecas para o dia a dia

Você está nas seções:  MundoJS » Kotlin

 

LEIA TAMBÉM:  O que é a Kotlin Standard Library

 

Siga os bons!

Ramos de Souza Janones

Janones, é um empreendedor brasileiro apaixonado por empreendedorismo e tecnologia. Ao longo dos anos trabalhando com o desenvolvimento de softwares desktop desde a linguagem Clipper, passando pelo Delphi e atualmente com Java.

Optou pela formação de Publicidade e Marketing por sua segunda empresa de tecnologia ter participado do "boom" da internet nos anos 90 e na procura de melhorar seus conhecimentos em negócios.

Em razão da principal formação e profundos conhecimentos em programação e banco de dados, é capaz de realizar o desenvolvimento de aplicativos web, desktop e mobile com maior criatividade e inovação que profissionais de desenvolvimento com uma formação única e mais especifica, dedicada somente ao desenvolvimento de softwares.

Com toda sua experiência com empresas de software, sua formação e paixão por negócios escreveu o livro "Marketing para Empresas e Profissionais de Software", publicado pela editora carioca Ciência Moderna em 2012. Além de outros livros sobre programação.

Últimos posts por Ramos de Souza Janones (exibir todos)


Frontend Do Zero Ao Profissional