Для чего нужны Extension Function

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

Ответ

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

Пример:

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

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

Преимущества:

  • Расширяемость классов из стандартной библиотеки
  • Лучшая организация кода (разделение логики)
  • Читаемый DSL-подобный синтаксис
  • Работает с nullable типами

Ограничения:

  • Нет доступа к приватным членам класса
  • Разрешение статическое (не виртуальное)