Курс по 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. Дефинираността зависи от това дали стойността е обект на типа, или истински екземпляр — а не от това към кой клас принадлежи.

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

Дефиниран или не   |   Назовете типа