Corso di Raku / Oggetti, input/output ed eccezioni / Classi e oggetti / Ruoli / Exercises / Un animale con nome ed età
Soluzione: Un animale con nome ed età
Ecco una possibile soluzione del compito.
Codice
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;🦋 Trova il programma nel file named-aged-pet.raku.
Output
I am Rex
3 yearsCommenti
Petcompone due ruoli in una volta sola, guadagnando sia il metodolabelsia il metodostatus.Il metodo di ciascun ruolo usa un attributo (
nameoppureage) che la classePetfornisce.