Что такое функция расширения

«Что такое функция расширения» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Функции расширения (extension functions) в Kotlin позволяют добавлять новые функции к существующим классам без наследования или модификации исходного кода. Они объявляются с префиксом имени класса, который расширяется.

// Пример: расширение класса String
fun String.addExclamation(): String {
    return "$this!"
}

// Использование
val greeting = "Hello".addExclamation() // "Hello!"

Особенности:

  • Не изменяют оригинальный класс
  • Доступны как обычные методы класса
  • Работают с nullable-типами (String?.)
  • Можно расширять даже классы из стандартной библиотеки или Java-классы