Sobes.tech
Junior — Middle

Como é que as conceitos de inline e Generic se relacionam na programação?

sobes.tech IA

Resposta da IA

As conceitos de inline e generic na programação abordam tarefas diferentes, mas são frequentemente usados juntos, especialmente em Kotlin.

  • Generic permite criar funções e classes genéricas que funcionam com diferentes tipos de dados sem duplicar código. Por exemplo, a função fun <T> printItem(item: T) pode aceitar qualquer tipo.

  • Inline é um modificador de função que, durante a compilação, insere o corpo da função no lugar da chamada, o que reduz os custos de chamada de função, especialmente útil ao trabalhar com lambdas.

Juntos, eles permitem criar funções genéricas eficientes com parâmetros lambda sem perda de desempenho. Por exemplo, funções genéricas inline são frequentemente usadas na biblioteca padrão do Kotlin para coleções.

Exemplo:

inline fun <T> List<T>.customFilter(predicate: (T) -> Boolean): List<T> {
    val result = mutableListOf<T>()
    for (item in this) {
        if (predicate(item)) result.add(item)
    }
    return result
}

Aqui, inline reduz os custos de chamada de lambda, e generic permite trabalhar com qualquer tipo de lista.