Курс по Raku / Обекти, вход-изход и изключения / Класове и обекти / Класове / Exercises / Дефиниран или не
Решение: Дефиниран или не
Ето едно възможно решение на задачата.
Код
class Cat {
}
class Dog {
}
for Cat, Dog, Cat.new, Dog.new -> $thing {
say $thing.defined;
}🦋 Намерете програмата във файла defined-or-not.raku.
Изход
False
False
True
TrueКоментари
Цикълът обхожда смес от обекти на типа (
Cat,Dog) и екземпляри (Cat.new,Dog.new).И двата обекта на типа са недефинирани, така че
definedвръщаFalseза тях; и двата екземпляра са дефинирани, така че връщаTrue. Дефинираността зависи от това дали стойността е обект на типа, или истински екземпляр — а не от това към кой клас принадлежи.