Ответ
Extension-функции в Kotlin - это просто статические функции, которые принимают экземпляр расширяемого класса в качестве первого параметра. Компилятор преобразует их в обычные функции Java.
// Исходный код
fun String.addExclamation() = "$this!"
// Под капотом (примерный Java-эквивалент)
public static String addExclamation(String receiver) {
return receiver + "!";
}
Ключевые моменты:
- Тип перед точкой в объявлении (
String.) становится первым параметром - Внутри функции
thisссылается на этот параметр - Вызов
"text".addExclamation()преобразуется вStringExtensionsKt.addExclamation("text")