Курс Raku / Об’єкти, введення-виведення та винятки / Класи та об’єкти / Методи / Вправи / Робот, що крокує
Розв’язання: Робот, що крокує
Ось один із можливих варіантів розв’язання задачі.
Код
class Robot {
has $.position is rw = 0;
method move($steps = 1) {
$.position += $steps;
}
}
my $r = Robot.new;
$r.move(5);
$r.move;
$r.move(2);
say $r.position;🦋 Вихідний код можна знайти у файлі bank-account.raku.
Вивід
8Коментарі
Атрибут
positionпозначеноis rw, щоб метод міг його змінювати, а типове значення0означає, що новий робот починає з початку координат.Метод
moveнадає своєму параметру типове значення —$steps = 1. Тому голий виклик$r.moveпросуває на один крок, тоді як$r.move(5)та$r.move(2)просувають на задану величину. Три виклики додають5 + 1 + 2, тож остаточна позиція дорівнює8.