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 woof

Komentoj

  1. .^add_method alfiksas novan metodon al la metaobjekto de la klaso je rultempe, donitan kiel anonima method { … }.

  2. La aldonita metodo estas vera metodo de la klaso, do ene de ĝi $.name atingas la atributon name de la objekto, ĝuste kiel metodo skribita en la klasan korpon farus. Post la voko, ĉiu Dog respondas al .speak.

Kursa navigado

Aldonu metodon   |   Enigo kaj eligo