Kurso de Raku / Objektoj, en- kaj eligo kaj escepto / Klasoj kaj objektoj / La metaobjekta protokolo 🆕 / Exercises / Trovu metodon
Solvo: Trovu metodon
Jen ebla solvo de la tasko.
Kodo
class Animal {
method speak { 'generic' }
}
class Dog is Animal {
}
say so Dog.^find_method('speak');🦋 Vi povas trovi la fontkodon en la dosiero find-method.raku.
Eligo
TrueKomentoj
.^find_methodredonas la metodon, se ĝi ekzistas, aŭ nedifinitan valoron se ne. Lasotransformas tion en simplan Boolean valoron.Dogdifinas neniujn metodojn mem, tamen la rezulto estasTrue:find_methodtraserĉas la tutan heredan ĉenon kaj trovasspeaksupre enAnimal. Tio spegulas, kiel efektiva metodvoko surDoglokalizus la hereditan metodon.