Cursus Raku / Objecten, in- en uitvoer en excepties / Klassen en objecten / Klassen / Exercises / Gedefinieerd of niet
Oplossing: Gedefinieerd of niet
Hier is een mogelijke oplossing voor de taak.
Code
class Cat {
}
class Dog {
}
for Cat, Dog, Cat.new, Dog.new -> $thing {
say $thing.defined;
}🦋 Je kunt de broncode vinden in het bestand defined-or-not.raku.
Uitvoer
False
False
True
TrueOpmerkingen
De lus loopt over een mengeling van typeobjecten (
Cat,Dog) en instanties (Cat.new,Dog.new).Beide typeobjecten zijn ongedefinieerd, dus
definedgeeft erFalsevoor terug; beide instanties zijn gedefinieerd, dus geeft hetTrueterug. Gedefinieerdheid hangt ervan af of een waarde een typeobject is of een echte instantie — niet van de klasse waartoe ze behoort.