Курс по Raku / Обекти, вход-изход и изключения / Класове и обекти / Протоколът на метаобектите 🆕 / Exercises / Добавете метод
Решение: Добавете метод
Ето едно възможно решение на задачата.
Код
class Dog {
has $.name;
}
Dog.^add_method('speak', method { $.name ~ ' says woof' });
say Dog.new(name => 'Rex').speak;🦋 Намерете програмата във файла add-a-method.raku.
Изход
Rex says woofКоментари
.^add_methodприкачва нов метод към метаобекта на класа по време на изпълнение, зададен като анонименmethod { … }.Добавеният метод е истински метод на класа, така че вътре в него
$.nameстига до атрибутаnameна обекта, точно както би направил метод, написан в тялото на класа. След извикването всекиDogотговаря на.speak.
Навигация в курса
← Добавете метод | Вход и изход →