Sobes.tech
Junior — Middle

Jak się odnoszą koncepcje inline i Generic w programowaniu?

sobes.tech AI

Odpowiedź od AI

Koncepcje inline i generic w programowaniu realizują różne zadania, ale często są używane razem, szczególnie w Kotlin.

  • Generic pozwala tworzyć ogólne funkcje i klasy, które działają z różnymi typami danych bez duplikowania kodu. Na przykład funkcja fun <T> printItem(item: T) może przyjąć dowolny typ.

  • Inline to modyfikator funkcji, który podczas kompilacji wstawia ciało funkcji zamiast wywołania, co zmniejsza koszty wywołania funkcji, szczególnie przy pracy z lambdami.

Razem umożliwiają tworzenie wydajnych funkcji generycznych z parametrami lambda bez utraty wydajności. Na przykład, funkcje inline generyczne są często używane w bibliotece standardowej Kotlin dla kolekcji.

Przykład:

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
}

Tutaj inline zmniejsza koszty wywołania lambdy, a generic pozwala pracować z dowolnym typem listy.