Курс Raku / Об’єкти, введення-виведення та винятки / Класи та об’єкти / Класи / Вправи / Визначений чи ні
Розв’язання: Визначений чи ні
Ось один із можливих варіантів розв’язання задачі.
Код
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. Визначеність залежить від того, чи є значення об’єктом типу, чи справжнім екземпляром, — а не від того, до якого класу воно належить.
Навігація курсом
← Визначений чи ні | Назвіть тип →