Введение в функции-расширения в Kotlin
Функция-расширение описывает действие для уже существующего типа - строки, числа, списка или карты. После объявления ее можно вызвать как обычный метод через точку у значения этого типа, хотя внутри класса типа такой команды нет.
Запись начинается со слова fun, затем идет имя
типа-получателя, точка и имя функции. Внутри тела
значение слева от точки доступно как this:
fun String.lastChar(): Char = this[this.lastIndex]
fun main() {
println("kotlin".lastChar())
}
Тот же вызов можно записать и как обычную функцию, передав получатель первым аргументом. Смысл не меняется, но точечная запись читается короче:
fun String.lastChar(): Char = this[this.lastIndex]
fun main() {
println(lastChar("code"))
}
Многие короткие команды стандартной библиотеки Kotlin -
readText у файла, isEmpty у строки,
uppercase - как раз функции-расширения. Свои
расширения объявляют на верхнем уровне файла рядом
с main и группируют по типу, для которого
они написаны.
Расширение не меняет исходный тип и не добавляет полей в память объекта. Оно лишь дает удобное имя для операции над уже имеющимся значением.
Давайте приступим:)