Raku kurss / Objekti, ievade/izvade un izņēmumi / Klases un objekti

Objektu introspekcija

Sadaļā par konteineriem jūs izmantojāt .^name, lai vērtībai pajautātu tās tipu. Tie paši .^ metaizsaukumi ļauj izpētīt klasi un tās objektus: to nosaukumus, atribūtus un vietu hierarhijā.

Metametode .^name atgriež klases nosaukumu:

class Dog {
    has Str $.name;
    method bark { 'Woof' }
}

say Dog.^name; # Dog

Metametode .^attributes uzskaita klases atribūtus. Katrs tiek parādīts ar savu tipu un iekšējo privāto nosaukumu ($! formu, ar ko iepazināties pie privātiem atribūtiem):

say Dog.^attributes; # (Str $!name)

Introspekcija noder rīkiem, kas ar objektiem strādā vispārīgi, — piemēram, lai izdrukātu katru objekta atribūtu, iepriekš nezinot tā klasi. Nākamais temats aplūko, kā apskatīt klases mantošanas ķēdi.

Arī šajā sadaļā

Prakse

Jūs gaida 1 viktorīna par šīs sadaļas saturu.

Vingrinājumi

Šajā sadaļā ir 2 vingrinājumi. Pirms ķerieties pie vingrinājumiem, izlasiet visus šīs sadaļas tematus.

  1. Aprakstiet klasi
  2. Saskaitiet atribūtus

Kursa navigācija

Risinājums: Dejojošs robots   |   Mantošanas ķēde