Функция расширения предназначена для ситуаций, когда вы хотите добавить функцию во встроенный или сторонний класс.Вы не можете сделать это по умолчанию, потому что встроенные функции не могут быть изменены.
Пример реализации для добавления метода toUnsigned во встроенный класс Byte:
fun Byte.toUnsigned(): Int {
return if (this < 0) this + 256 else this.toInt()
}
Поскольку Byte являетсявстроенный класс, вы не можете изменить его напрямую.Однако вы можете определить функцию расширения согласно приведенному выше коду.Затем вы можете вызвать функцию расширения следующим образом:
val x: Byte = -1
println(x.toUnsigned()) // Prints 255
Имейте в виду, что это просто синтаксический сахар - вы на самом деле не изменяете класс или его экземпляры.Следовательно, вам необходимо импортировать функцию / свойство расширения везде, где вы хотите ее использовать (поскольку оно не переносится вместе с экземплярами класса).
Источник: https://kotlinlang.org/docs/tutorials/kotlin-for-py/extension-functionsproperties.html