Sobes.tech
Back to questions
Junior — Middle
96

Как соотносятся концепции inline и Generic в программировании?

Answer from AI

sobes.tech AI

Концепции inline и generic в программировании решают разные задачи, но часто используются вместе, особенно в Kotlin.

  • Generic позволяет создавать обобщённые функции и классы, которые работают с разными типами данных без дублирования кода. Например, функция fun <T> printItem(item: T) может принимать любой тип.

  • Inline — это модификатор функции, который при компиляции вставляет тело функции вместо вызова, что уменьшает накладные расходы на вызов функции, особенно полезно при работе с лямбдами.

Вместе они позволяют создавать эффективные обобщённые функции с лямбда-параметрами без потерь производительности. Например, inline generic функции часто используются в стандартной библиотеке Kotlin для коллекций.

Пример:

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
}

Здесь inline уменьшает накладные расходы вызова лямбды, а generic позволяет работать с любым типом списка.