Sobes.tech
Junior — Middle

Pode explicar o que significa usar uma função inline em Kotlin e como ela difere de uma função normal?

sobes.tech IA

Resposta da IA

Em Kotlin, a palavra-chave inline é usada para funções, para que o compilador insira o corpo da função diretamente no local da chamada, em vez de uma chamada normal através da pilha. Isso reduz os custos de chamada de função, sendo especialmente útil para funções de ordem superior que aceitam expressões lambda.

Diferenças de uma função normal:

  • Desempenho: funções inline podem melhorar o desempenho ao eliminar a chamada de função.
  • Expressões lambda: ao usar funções inline, as lambdas não criam objetos adicionais, o que reduz a carga no coletor de lixo.

Exemplo:

inline fun measureTime(block: () -> Unit) {
    val start = System.currentTimeMillis()
    block()
    println("Tempo de execução: ${System.currentTimeMillis() - start} ms")
}

fun main() {
    measureTime {
        println("Código em execução")
    }
}

Aqui, measureTime é uma função inline, e seu corpo será inserido no main em vez de uma chamada normal.