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