Курс по Raku / Напреднали / Контейнери / Скаларни контейнери

Проксиране на методни повиквания

Да бъдеш скаларен контейнер всъщност означава да бъдеш обект от тип Scalar. В повечето случаи използването на скалари е толкова прозрачно, че разработчикът не трябва да мисли изобщо за контейнера и може да си представя, че работи директно със стойностите, съхранени в него.

Това работи, защото скаларният контейнер препраща извикванията на методи към стойността, която съдържа. Например, след присвояването my $lang = 'Raku', можете да извикате метода .chars върху променливата:

my $lang = 'Raku';
say $lang.chars; # 4

Програмата отпечатва 4, което е броят на символите в низа 'Raku'. Резултатът е абсолютно същият, както ако извикате .chars директно върху стойността на низа, а не върху контейнерната променлива:

say 'Raku'.chars; # 4

С други думи, контейнерът тихо препраща извикването на .chars към низа, който съдържа, и ви връща резултата.

Навигация в курса

Стойности по подразбиране   |   Отстъпка по подразбиране


💪 Или преминете направо към упражненията в този раздел.