Kurso de Raku / Objektoj, en- kaj eligo kaj escepto / Klasoj kaj objektoj / Klasoj / Exercises / Difinita aŭ ne

Solvo: Difinita aŭ ne

Jen ebla solvo de la tasko.

Kodo

class Cat {
}

class Dog {
}

for Cat, Dog, Cat.new, Dog.new -> $thing {
    say $thing.defined;
}

🦋 Vi povas trovi la fontkodon en la dosiero defined-or-not.raku.

Eligo

False
False
True
True

Komentoj

  1. La buklo iras tra miksaĵo de tipobjektoj (Cat, Dog) kaj ekzempleroj (Cat.new, Dog.new).

  2. Ambaŭ tipobjektoj estas nedifinitaj, do defined redonas False por ili; ambaŭ ekzempleroj estas difinitaj, do ĝi redonas True. Difiniteco dependas de tio, ĉu valoro estas tipobjekto aŭ vera ekzemplero — ne de tio, al kiu klaso ĝi apartenas.

Kursa navigado

Difinita aŭ ne   |   Nomu la tipon