Junior
O que são funções de extensão em Kotlin?
sobes.tech IA
Resposta da IA
As funções de extensão são funções que permitem adicionar nova funcionalidade a classes existentes sem modificar o seu código fonte e sem recorrer à herança.
São declaradas fora da classe e ligadas a ela através da sintaxe <ClasseAção>.função<Parâmetros>. Dentro da função de extensão, this refere-se à instância da classe para a qual ela é chamada.
Exemplo:
// Declaração de uma função de extensão para a classe String
fun String.addGreeting(): String {
return "Olá, $this!"
}
fun main() {
val name = "Mundo"
// Chamada da função de extensão
println(name.addGreeting()) // Vai exibir "Olá, Mundo!"
}
Principais vantagens:
- Clareza do código: Não é necessário criar classes utilitárias com métodos estáticos ou herdar classes apenas para adicionar funcionalidades.
- Legibilidade: As chamadas às funções de extensão parecem métodos normais da classe.
- Modularidade: Funcionalidades podem ser adicionadas em um escopo local.
Restrições:
- Funções de extensão não têm acesso a membros privados ou protegidos da classe.
- Em caso de conflito entre um método da classe e uma função de extensão com a mesma assinatura, prevalece o método da classe.