Курс по 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върху същия обект и използвайки повторно резултата му. Изграждането на по-голямо поведение от по-малки методи по този начин държи всеки метод отговорен за една задача.