Raku-Kurs / Objekte, Ein- und Ausgabe und Ausnahmen / Klassen und Objekte / Klassen / Exercises / Definiert oder nicht
Lösung: Definiert oder nicht
Hier ist eine mögliche Lösung der Aufgabe.
Code
class Cat {
}
class Dog {
}
for Cat, Dog, Cat.new, Dog.new -> $thing {
say $thing.defined;
}🦋 Du findest den Quellcode in der Datei defined-or-not.raku.
Ausgabe
False
False
True
TrueKommentare
Die Schleife läuft über eine Mischung aus Typobjekten (
Cat,Dog) und Instanzen (Cat.new,Dog.new).Beide Typobjekte sind undefiniert, daher liefert
definedfür sieFalse; beide Instanzen sind definiert, daher liefert esTrue. Die Definiertheit hängt davon ab, ob ein Wert ein Typobjekt oder eine echte Instanz ist — nicht davon, zu welcher Klasse er gehört.