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 →