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
True

Kommentare

  1. Die Schleife läuft über eine Mischung aus Typobjekten (Cat, Dog) und Instanzen (Cat.new, Dog.new).

  2. Beide Typobjekte sind undefiniert, daher liefert defined für sie False; beide Instanzen sind definiert, daher liefert es True. Die Definiertheit hängt davon ab, ob ein Wert ein Typobjekt oder eine echte Instanz ist — nicht davon, zu welcher Klasse er gehört.

Kursnavigation

Definiert oder nicht   |   Nennen Sie den Typ