Kurso de Raku / Objektoj, en- kaj eligo kaj escepto / Klasoj kaj objektoj

Introspekti objektojn

En la sekcio pri ujoj vi uzis .^name por demandi al valoro ĝian tipon. La samaj metavokoj .^ permesas al vi inspekti klason kaj ĝiajn objektojn: iliajn nomojn, iliajn atributojn, kaj kie ili sidas en hierarkio.

La metametodo .^name redonas la nomon de la klaso:

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

say Dog.^name; # Dog

La metametodo .^attributes listigas la atributojn de la klaso. Ĉiu estas montrata kun sia tipo kaj sia interna privata nomo (la formo $!, kiun vi renkontis ĉe privataj atributoj):

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

Introspekto estas utila por iloj, kiuj laboras kun objektoj ĝenerale — ekzemple, por presi ĉiun atributon de objekto sen scii ĝian klason anticipe. La sekva temo rigardas, kiel vidi la heredan ĉenon de klaso.

Ankaŭ en ĉi tiu sekcio

Praktiko

Vin atendas 1 kvizo pri la enhavo de ĉi tiu sekcio.

Ekzercoj

En ĉi tiu sekcio estas 2 ekzercoj. Trarigardu ĉiujn temojn de ĉi tiu sekcio antaŭ ol komenci la ekzercojn.

  1. Priskribu klason
  2. Nombru la atributojn

Kursa navigado

Solvo: Dancanta roboto   |   La hereda ĉeno