Raku kurss / Objekti, ievade/izvade un izņēmumi / Klases un objekti / Objektu introspekcija / Exercises / Aprakstiet klasi

Risinājums: Aprakstiet klasi

Šeit ir iespējams risinājums uzdevumam.

Kods

class Animal {
}

class Dog is Animal {
}

say Dog.^name;
say Dog.^mro.elems;
say 'Cat'Dog.^mro.map(*.^name);

🦋 Atrodiet programmu failā describe-a-class.raku.

Izvade

Dog
4
False

Komentāri

  1. .^name atgriež pašas klases nosaukumu Dog.

  2. .^mro atgriež mantošanas ķēdi, un .elems to saskaita. Ķēdē ir četri tipi — Dog, tā vecākklase Animal un universālie Any un Mu —, tāpēc skaits ir 4.

  3. .^mro.map(*.^name) pārvērš šo ķēdi par tipu nosaukumu sarakstu (Dog Animal Any Mu). Kopas piederības operators tad pārbauda, vai Cat ir viens no tiem. Dog necēlies ne no viena Cat, tāpēc atbilde ir False.

Kursa navigācija

Aprakstiet klasi   |   Saskaitiet atribūtus