Что такое extension функции в Kotlin

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

Ответ

Extension-функции позволяют добавлять новые методы к существующим классам без наследования или модификации исходного кода. Они объявляются с префиксом типа-получателя перед именем функции.

fun String.addExclamation(): String = "$this!"

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

Ключевые особенности:

  1. Не модифицируют оригинальный класс
  2. Вызываются как обычные методы
  3. Доступны только в области видимости, где объявлены
  4. Разрешение статическое (не виртуальные)
  5. Могут быть nullable (String?.)

Полезны для:

  • Улучшения читаемости кода
  • Добавления утилитарных методов
  • Работы с классами из сторонних библиотек