Cursus Raku / Objecten, in- en uitvoer en excepties / Klassen en objecten / Rollen / Exercises / Een huisdier met naam en leeftijd
Oplossing: Een huisdier met naam en leeftijd
Hier is een mogelijke oplossing voor de taak.
Code
role Named {
method label {
'I am ' ~ self.name;
}
}
role Aged {
method status {
self.age ~ ' years';
}
}
class Pet does Named does Aged {
has $.name;
has $.age;
}
my $p = Pet.new(name => 'Rex', age => 3);
say $p.label;
say $p.status;🦋 Je kunt de broncode vinden in het bestand named-aged-pet.raku.
Uitvoer
I am Rex
3 yearsOpmerkingen
Petstelt twee rollen tegelijk samen en krijgt zo zowel de methodelabelals de methodestatus.De methode van elke rol gebruikt een attribuut (
nameofage) dat de klassePetlevert.