Cursus Raku / Objecten, in- en uitvoer en excepties / Klassen en objecten / Methoden / Exercises / Een lopende robot
Oplossing: Een lopende robot
Hier is een mogelijke oplossing voor de taak.
Code
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;🦋 Je kunt de broncode vinden in het bestand bank-account.raku.
Uitvoer
8Opmerkingen
Het attribuut
positionisis rwzodat de methode het kan veranderen, en het is standaard0zodat een verse robot in de oorsprong begint.De methode
movegeeft haar parameter een standaardwaarde,$steps = 1. De kale aanroep$r.moveschuift dus één stap op, terwijl$r.move(5)en$r.move(2)met het gegeven aantal opschuiven. De drie aanroepen tellen5 + 1 + 2op, dus de eindpositie is8.