Ответ
Extension-функции в Kotlin позволяют добавлять новые функции к существующим классам без наследования или модификации исходного кода. Это улучшает читаемость и поддерживает принцип открытости/закрытости.
Пример:
fun String.addExclamation() = "$this!"
// Использование
val greeting = "Hello".addExclamation() // "Hello!"
Преимущества:
- Расширяемость классов из стандартной библиотеки
- Лучшая организация кода (разделение логики)
- Читаемый DSL-подобный синтаксис
- Работает с nullable типами
Ограничения:
- Нет доступа к приватным членам класса
- Разрешение статическое (не виртуальное)