Raku-Kurs / Fortgeschritten / Container / Introspektion von Containern
VAR verwenden
VAR ist eine Pseudo-Methode, die das zugrunde liegende
Container-Objekt zurückgibt. Bei einer skalaren Variable gibt der
.VAR-Aufruf den dahinterliegenden
Scalar-Container zurück.
^name
Sobald du den Container hast, kannst du mit .^name den
Namen seiner Klasse abfragen:
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 auf der Variable gibt den Typ des Wertes
zurück (Int oder Str), während
.VAR.^name den Typ des Containers zurückgibt, der
in beiden Fällen Scalar ist.
default
Die default-Methode gibt den Standardwert des Containers
zurück — das, was du bekommst, wenn der Container nichts Eigenes
enthält. Mit dem is default-Trait setzt du ihn
explizit:
my Str $language is default('Raku');
say $language.VAR.default; # RakuOhne einen expliziten Standardwert ist der Standardwert der Typ des
Containers. Bei einem nicht typisierten Container ist das
Any, unabhängig davon, welcher Wert gerade gespeichert
ist:
my $language = 'Raku';
say $language.VAR.default; # (Any)Bei einem typisierten Container ist es der Constraint-Typ:
my Str $language;
say $language.VAR.default; # (Str)name
Die name-Methode gibt den Namen des Containers zurück,
einschließlich des Sigils:
my $language;
say $language.VAR.name; # $languageAchte darauf, ^name (den Typ) und name (den
eigenen Namen der Variable) nicht zu verwechseln.
Kursnavigation
← Quiz —
WHAT und ^name | WHO und
HOW →
💪 Oder springen Sie direkt zu den Übungen dieses
Abschnitts.