Курс языка программирования Raku / Продвинутый уровень / Контейнеры / Скалярные контейнеры
Проксирование вызова методов
Быть скалярным контейнером фактически означает быть объектом типа
Scalar. В большинстве случаев работа со скалярами настолько
прозрачна, что разработчику не нужно думать о контейнере вообще — можно
представлять, что работа идёт непосредственно со значениями, хранящимися
в нём.
Это работает потому, что скалярный контейнер проксирует вызовы
методов к хранящемуся в нём значению. Например, после присваивания
my $lang = 'Raku' можно вызвать метод .chars
на переменной:
my $lang = 'Raku';
say $lang.chars; # 4Программа выводит 4 — количество символов в строке
'Raku'. Результат точно такой же, как если бы вы вызвали
.chars непосредственно на строковом значении, а не на
переменной-контейнере:
say 'Raku'.chars; # 4Другими словами, контейнер незаметно перенаправляет вызов
.chars строке, которую он хранит, и возвращает вам
результат.
Навигация по курсу
← Значения по умолчанию | Скидка по умолчанию →
💪 Или перейдите сразу к упражнениям этого
раздела.