Raku-Kurs / Objekte, Ein- und Ausgabe und Ausnahmen / Klassen und Objekte / Methoden / Exercises / Ein laufender Roboter

Lösung: Ein laufender Roboter

Hier ist eine mögliche Lösung der Aufgabe.

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;

🦋 Du findest den Quellcode in der Datei bank-account.raku.

Ausgabe

8

Kommentare

  1. Das Attribut position ist is rw, damit die Methode es ändern kann, und es ist standardmäßig 0, sodass ein frischer Roboter im Ursprung startet.

  2. Die Methode move gibt ihrem Parameter einen Standardwert, $steps = 1. Der bloße Aufruf $r.move rückt daher um einen Schritt vor, während $r.move(5) und $r.move(2) um den angegebenen Betrag vorrücken. Die drei Aufrufe addieren 5 + 1 + 2, die Endposition ist also 8.

Kursnavigation

Ein laufender Roboter   |   Ein umgedrehtes Wort