Raku kurss / Objekti, ievade/izvade un izņēmumi / Klases un objekti / Metaobjektu protokols 🆕 / Exercises / Pievienojiet metodi
Risinājums: Pievienojiet metodi
Šeit ir iespējams risinājums uzdevumam.
Kods
class Dog {
has $.name;
}
Dog.^add_method('speak', method { $.name ~ ' says woof' });
say Dog.new(name => 'Rex').speak;🦋 Atrodiet programmu failā add-a-method.raku.
Izvade
Rex says woofKomentāri
.^add_methodizpildes laikā piesaista klases metaobjektam jaunu metodi, kas dota kā anonīmamethod { … }.Pievienotā metode ir īsta klases metode, tāpēc tās iekšienē
$.namesasniedz objekta atribūtunamegluži tāpat, kā to darītu klases ķermenī uzrakstīta metode. Pēc izsaukuma katrsDogatsaucas uz.speak.