Sobes.tech
Junior — Middle

Come si relazionano i concetti di inline e Generic nella programmazione?

sobes.tech AI

Risposta dell'AI

I concetti di inline e generic nella programmazione affrontano compiti diversi, ma sono spesso usati insieme, specialmente in Kotlin.

  • Generic permette di creare funzioni e classi generiche che funzionano con diversi tipi di dati senza duplicare il codice. Ad esempio, la funzione fun <T> printItem(item: T) può accettare qualsiasi tipo.

  • Inline è un modificatore di funzione che, durante la compilazione, inserisce il corpo della funzione al posto della chiamata, riducendo i costi di chiamata, particolarmente utile con le lambda.

Insieme, consentono di creare funzioni generiche efficienti con parametri lambda senza perdita di prestazioni. Ad esempio, le funzioni inline generiche sono spesso usate nella libreria standard di Kotlin per le collezioni.

Esempio:

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
}

Qui, inline riduce i costi di chiamata della lambda, e generic permette di lavorare con qualsiasi tipo di lista.