Kurso de Raku / Objektoj, en- kaj eligo kaj escepto / Klasoj kaj objektoj / La metaobjekta protokolo 🆕 / Exercises / Aldonu metodon
Solvo: Aldonu metodon
Jen ebla solvo de la tasko.
Kodo
class Dog {
has $.name;
}
Dog.^add_method('speak', method { $.name ~ ' says woof' });
say Dog.new(name => 'Rex').speak;🦋 Vi povas trovi la fontkodon en la dosiero add-a-method.raku.
Eligo
Rex says woofKomentoj
.^add_methodalfiksas novan metodon al la metaobjekto de la klaso je rultempe, donitan kiel anonimamethod { … }.La aldonita metodo estas vera metodo de la klaso, do ene de ĝi
$.nameatingas la atributonnamede la objekto, ĝuste kiel metodo skribita en la klasan korpon farus. Post la voko, ĉiuDogrespondas al.speak.