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
}