Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Kotlin: operator overloading,, operator, custom types, plus, times

Объясните концепцию перегрузки операторов в 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

    Kotlin

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

#operator overloading,

#operator

#custom types

#plus

#times

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

  • Аватар

    Android Guru

    Anton Gulyaev

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