Raku kurss / Padziļināti / Konteineri / Konteineru introspekcija

VAR izmantošana

VAR ir pseidometode, kas atgriež pamatā esošo konteinera objektu. Skalāram mainīgajam .VAR izsaukums atgriež Scalar konteineru, kas atrodas aiz tā.

^name

Kad jums ir konteineris, varat noskaidrot tā klases nosaukumu ar .^name:

my $var1 = 42;
my $var2 = '42';

say $var1.^name;     # Int
say $var1.VAR.^name; # Scalar

say $var2.^name;     # Str
say $var2.VAR.^name; # Scalar

.^name uz mainīgā atgriež vērtības tipu (Int vai Str), savukārt .VAR.^name atgriež konteinera tipu, kas abos gadījumos ir Scalar.

default

Metode default atgriež konteinera noklusējuma vērtību — to, ko saņemat, kad konteineris pats neko nesatur. Ar iezīmi is default to var iestatīt tieši:

my Str $language is default('Raku');
say $language.VAR.default; # Raku

Bez norādīta noklusējuma noklusējuma vērtība ir konteinera tips. Netipizētam konteineram tā ir Any, neatkarīgi no tā, kāda vērtība tajā pašlaik glabājas:

my $language = 'Raku';
say $language.VAR.default; # (Any)

Tipizētam konteineram tā ir ierobežojuma tips:

my Str $language;
say $language.VAR.default; # (Str)

name

Metode name atgriež konteinera nosaukumu, ieskaitot sigilu:

my $language;
say $language.VAR.name; # $language

Uzmanieties, lai nesajauktu ^name (tips) un name (paša mainīgā nosaukums).

Kursa navigācija

Viktorīna — WHAT un ^name   |   WHO un HOW


💪 Vai arī dodieties tieši uz šīs sadaļas vingrinājumiem.