Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад

Объясните концепцию перегрузки операторов в Kotlin.

Этот вопрос проверяет знание перегрузки операторов в Kotlin и её использование для работы с пользовательскими типами.

Короткий ответ

Перегрузка операторов в Kotlin позволяет определять, как операторы (например, +, -, *) работают с пользовательскими классами. Для этого используется модификатор operator перед функцией, которая описывает поведение оператора. Это улучшает читаемость кода и делает пользовательские классы более интуитивными в использовании.

Длинный ответ

Перегрузка операторов позволяет разработчикам задавать специфическое поведение стандартных операторов для пользовательских типов.

 

Как работает оператор operator:

- Для перегрузки оператора необходимо определить функцию с ключевым словом operator.

- Имя функции должно соответствовать оператору. Например, для + используется функция plus.

- Пример реализации:

data class Vector(val x: Int, val y: Int) {
    operator fun plus(other: Vector): Vector {
        return Vector(x + other.x, y + other.y)
    }
}

fun main() {
    val v1 = Vector(1, 2)
    val v2 = Vector(3, 4)
    val sum = v1 + v2

    println(sum)  // Вывод: Vector(x=4, y=6)
}

Здесь перегружается оператор + для сложения двух векторов.

 

Другие операторы:

- Вы можете перегружать операторы сравнения (==, <, >), индексирования ([]), вызова функций (()) и т.д.

- Пример перегрузки *:

operator fun times(scale: Int): Vector {
    return Vector(x * scale, y * scale)
}


Перегрузка операторов позволяет создавать более интуитивные API для пользовательских классов, делая их использование удобным и выразительным. Она особенно полезна для математических операций, работы с коллекциями и DSL.

  • Аватар

    Android Guru

    Anton Gulyaev

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    6

Навыки

  • Kotlin

Ключевые слова

#operator overloading,

#operator

#custom types

#plus

#times

Подпишись на Android Developer в телеграм

  • Аватар

    Android Guru

    Anton Gulyaev

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.