Ответ
Inline-функции в Kotlin оптимизируют производительность, избегая накладных расходов на вызов функций, но не все функции могут быть inline из-за ограничений:
- Рекурсивные функции - inline приведёт к бесконечному копированию кода
- Функции с reified типами - требуют inline для доступа к типам в runtime
- Функции высокого порядка - передача лямбд требует inline для избежания создания анонимных классов
- Public API функции - inline-функции становятся частью вызывающего кода, что может привести к проблемам бинарной совместимости
Пример:
inline fun <reified T> parseJson(json: String): T {
// Требует inline для reified T
return Gson().fromJson(json, T::class.java)
}