Corso di Raku / Oggetti, input/output ed eccezioni / Classi e oggetti / Classi
Oggetti di tipo e istanze
Quando scrivi il nome di una classe come Dog, ti stai
riferendo all’oggetto di tipo della classe. L’oggetto di tipo
rappresenta il tipo in sé, non un oggetto particolare di quel tipo.
Un’istanza, creata con new, è un oggetto vero e
proprio.
Raku sa distinguere i due. Il metodo defined restituisce
False per un oggetto di tipo e True per
un’istanza:
class Dog {
}
say Dog.defined; # False
say Dog.new.defined; # TrueUn oggetto di tipo è considerato non definito perché non contiene dati concreti: è solo la descrizione di un tipo. Un’istanza è definita: è un oggetto vero.
Entrambi riferiscono lo stesso tipo tramite WHAT, che
hai incontrato nella sezione sui
contenitori:
class Dog {
}
say Dog.WHAT; # (Dog)
say Dog.new.WHAT; # (Dog)Le parentesi attorno a (Dog) sono il modo in cui Raku
mostra un tipo. Quindi Dog e Dog.new
condividono il tipo Dog; la differenza è che uno è il tipo
stesso e l’altro è un oggetto di quel tipo.
Pratica
Risolvi 1 quiz sul contenuto di questo argomento.
Navigazione del corso
← Classi | Quiz — Classi →
💪 Oppure vai direttamente agli esercizi di questa
sezione.