Курс Raku / Об’єкти, введення-виведення та винятки / Класи та об’єкти / Методи / Вправи / Площа прямокутника
Розв’язання: Площа прямокутника
Ось один із можливих варіантів розв’язання задачі.
Код
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для того самого об’єкта й повторно використовуючи його результат. Побудова більшої поведінки з менших методів у такий спосіб лишає кожен метод відповідальним за одну справу.