Курс по Raku / Напреднали / Контейнери / Интроспекция на контейнери
Използване на VAR
VAR е псевдо-метод, който връща основния
обект-контейнер. За скаларна променлива, извикването на
.VAR връща контейнера Scalar зад нея.
^name
След като имате контейнера, можете да попитате за името на неговия
клас с .^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 върху променливата връща типа на
стойността (Int или Str), докато
.VAR.^name връща типа на контейнера, който и в
двата случая е Scalar.
default
Методът default връща стойността по подразбиране на
контейнера — това, което получавате, когато контейнерът не съдържа
собствена стойност. С характеристиката is default я
задавате изрично:
my Str $language is default('Raku');
say $language.VAR.default; # RakuБез изрична стойност по подразбиране, стойността по подразбиране е
типът на контейнера. За нетипизиран контейнер това е Any,
независимо каква стойност съдържа в момента:
my $language = 'Raku';
say $language.VAR.default; # (Any)За типизиран контейнер това е ограничаващият тип:
my Str $language;
say $language.VAR.default; # (Str)name
Методът name връща името на контейнера, включително
сигила:
my $language;
say $language.VAR.name; # $languageВнимавайте да не объркате ^name (типът) и
name (собственото име на променливата).
Навигация в курса
← Тест —
WHAT и ^name | WHO и
HOW →
💪 Или преминете направо към упражненията в този
раздел.