Sobes.tech
Junior — Middle

Jak spolu souvisejí koncepty inline a Generic v programování?

sobes.tech AI

Odpověď od AI

Koncepty inline a generic v programování řeší různé úkoly, ale často se používají společně, zejména v Kotlinu.

  • Generic umožňuje vytvářet obecné funkce a třídy, které pracují s různými datovými typy bez duplikace kódu. Například funkce fun <T> printItem(item: T) může přijímat jakýkoli typ.

  • Inline je modifikátor funkce, který při kompilaci vloží tělo funkce místo volání, což snižuje režii volání funkce, což je zvlášť užitečné při práci s lambdami.

Společně umožňují vytvářet efektivní obecné funkce s lambda parametry bez ztráty výkonu. Například inline generické funkce jsou často používány v Kotlinové knihovně pro kolekce.

Příklad:

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
}

Zde inline snižuje režii volání lambda, a generic umožňuje pracovat s jakýmkoli typem seznamu.