Курс языка программирования Raku / Объекты, ввод-вывод и исключения / Классы и объекты / Методы / Exercises / Площадь прямоугольника
Решение: Площадь прямоугольника
Вот один из возможных вариантов решения задачи.
Код
class Rectangle {
has $.width;
has $.height;
method area {
$.width * $.height;
}
method describe {
"area is " ~ self.area;
}
}
say Rectangle.new(width => 3, height => 4).describe;🦋 Исходный код можно найти в файле rectangle-area.raku.
Вывод
area is 12Комментарии
Метод
areaчитает собственныеwidthиheightобъекта через их аксессоры и перемножает их — для прямоугольника3на4это12.Метод
describeне повторяет это вычисление. Вместо этого он вызываетself.area, выполняя методareaу того же объекта и переиспользуя его результат. Такая сборка большего поведения из меньших методов оставляет за каждым методом ровно одну работу.