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

8

Opmerkingen

  1. Het attribuut position is is rw zodat de methode het kan veranderen, en het is standaard 0 zodat een verse robot in de oorsprong begint.

  2. De methode move geeft haar parameter een standaardwaarde, $steps = 1. De kale aanroep $r.move schuift dus één stap op, terwijl $r.move(5) en $r.move(2) met het gegeven aantal opschuiven. De drie aanroepen tellen 5 + 1 + 2 op, dus de eindpositie is 8.

Cursusnavigatie

Een lopende robot   |   Een omgekeerd woord