Junior — Middle
Podes explicar o conceito de funções inline em Kotlin e suas vantagens?
sobes.tech IA
Resposta da IA
Em Kotlin, a palavra-chave inline é usada para funções, de modo que o compilador, durante a compilação, insira o corpo da função diretamente nos locais onde ela é chamada, em vez de uma chamada normal por referência. Isto é especialmente útil para funções de ordem superior que aceitam expressões lambda.
Vantagens das funções inline:
- Redução dos custos de chamada de funções. Ao usar lambdas sem inline, objetos e chamadas adicionais são criados, o que reduz o desempenho.
- Aumento do desempenho. A inserção direta do código evita a criação de objetos e chamadas adicionais.
- Possibilidade de usar
noinlineecrossinline. Permite gerenciar de forma flexível o comportamento das lambdas dentro de funções inline.
Exemplo:
inline fun measureTime(block: () -> Unit) {
val start = System.currentTimeMillis()
block()
val end = System.currentTimeMillis()
println("Tempo de execução: ${end - start} ms")
}
fun main() {
measureTime {
// algum código
Thread.sleep(100)
}
}
Aqui, measureTime é uma função inline, e o corpo da lambda será inserido diretamente, o que reduzirá os custos adicionais.