Corso di Raku / Oggetti, input/output ed eccezioni / Classi e oggetti / Classi / Exercises / Definito o no

Soluzione: Definito o no

Ecco una possibile soluzione del compito.

Codice

class Cat {
}

class Dog {
}

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

🦋 Trova il programma nel file defined-or-not.raku.

Output

False
False
True
True

Commenti

  1. Il ciclo percorre un misto di oggetti di tipo (Cat, Dog) e istanze (Cat.new, Dog.new).

  2. Entrambi gli oggetti di tipo non sono definiti, quindi defined restituisce False per loro; entrambe le istanze sono definite, quindi restituisce True. L’essere definito dipende dal fatto che un valore sia un oggetto di tipo o un’istanza vera — non dalla classe a cui appartiene.

Definito o no   |   Indicate il tipo