Ответ
Extension-функции (расширения) в Kotlin позволяют добавлять новые методы к существующим классам без наследования или модификации исходного кода. Они объявляются с префиксом имени класса-получателя (receiver type).
fun String.addExclamation(): String = "$this!"
// Использование
val greeting = "Hello".addExclamation() // "Hello!"
Особенности:
- Не модифицируют оригинальный класс
- Работают как статические методы под капотом
- Доступны только в области видимости, где объявлены
- Могут быть nullable (
String?.function()) - Не имеют доступа к приватным членам класса