Курс по Raku / Обекти, вход-изход и изключения / Класове и обекти / Протоколът на метаобектите 🆕 / Exercises / Намерете метод
Решение: Намерете метод
Ето едно възможно решение на задачата.
Код
class Animal {
method speak { 'generic' }
}
class Dog is Animal {
}
say so Dog.^find_method('speak');🦋 Намерете програмата във файла find-method.raku.
Изход
TrueКоментари
.^find_methodвръща метода, ако съществува, или недефинирана стойност, ако не.soпревръща това в обикновена булева стойност.Dogне дефинира собствени методи, а резултатът все пак еTrue:find_methodпретърсва цялата верига на наследяване и намираspeakгоре вAnimal. Това отразява как действително извикване на метод върхуDogби открило наследения метод.