Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗ktSpIxAr 90 of 299 menu
◀ ▶

Остальная арифметика в Kotlin

Кроме плюса, для типа можно связать имена minus, times и div со знаками -, * и /. Все объявления пишут в одном классе, если операции относятся к одной и той же величине:

class Meters(val value: Int) { operator fun minus(other: Meters): Meters { return Meters(value - other.value) } operator fun times(factor: Int): Meters { return Meters(value * factor) } operator fun div(parts: Int): Meters { return Meters(value / parts) } }

В main выражения с числом справа от * и / выглядят как у примитивов, хотя слева стоит ваш класс:

fun main() { val road = Meters(100) val piece = Meters(30) val left = road - piece val doubled = left * 2 val half = doubled / 4 println(half.value) }

Тип второго операнда задают в объявлении: здесь вычитание идет между двумя Meters, а умножение и деление - на целый множитель. Главное, чтобы сигнатура совпадала с тем, как вызываете выражение в коде.

Сделайте класс Grams с полем value. Реализуйте вычитание двух масс, умножение на Int и деление на Int через знаки -, * и /. Из 50 граммов отнимите 20, результат умножьте на 2 и выведите value.

Возьмите Grams(80), разделите на 4 записью со знаком / и выведите полученную массу.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить