Курс языка программирования 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. Определённость зависит от того, является ли значение объектом типа или настоящим экземпляром, а не от того, какому классу оно принадлежит.