Курс языка программирования 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

Комментарии

  1. Цикл проходит по смеси объектов типа (Cat, Dog) и экземпляров (Cat.new, Dog.new).

  2. Оба объекта типа не определены, поэтому defined возвращает для них False; оба экземпляра определены, поэтому возвращается True. Определённость зависит от того, является ли значение объектом типа или настоящим экземпляром, а не от того, какому классу оно принадлежит.

Навигация по курсу

Определён или нет   |   Назовите тип