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

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

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

class Meters { int value; Meters(this.value); Meters operator -(Meters other) { return Meters(value - other.value); } Meters operator *(int factor) { return Meters(value * factor); } Meters operator /(int parts) { return Meters(value ~/ parts); } }

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

Meters road = Meters(100); Meters piece = Meters(30); Meters left = road - piece; Meters doubled = left * 2; Meters half = doubled / 4; print(half.value);

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

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

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

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