Sobes.tech
Junior — Middle

Em que as funções inline se diferenciam das funções normais e quais são suas vantagens?

sobes.tech IA

Resposta da IA

As funções inline são funções que o compilador tenta substituir diretamente no local da chamada, em vez de chamá-las como uma função normal. Isso reduz os custos de chamada de função (por exemplo, saltar para um endereço e salvar o contexto).

Vantagens das funções inline:

  • Aumento de desempenho ao eliminar a chamada de função.
  • Possibilidade de o compilador otimizar melhor o código, por exemplo, removendo variáveis desnecessárias.

No entanto, se a função for grande, inline pode aumentar o tamanho do binário, por isso o compilador pode ignorar inline para funções grandes.

Exemplo em Kotlin:

inline fun measureTime(block: () -> Unit) {
    val start = System.currentTimeMillis()
    block()
    println("Time: ${System.currentTimeMillis() - start} ms")
}

// Uso
measureTime {
    // código cujo tempo de execução deve ser medido
}