Курс Raku / Розширені / Контейнери / Скалярні контейнери
Проксіювання викликів методів
Бути скалярним контейнером насправді означає бути об’єктом типу
Scalar. У більшості випадків використання скалярів
настільки прозоре, що розробнику взагалі не доводиться думати про
контейнер і можна уявляти, ніби він працює напряму зі значеннями, що в
ньому зберігаються.
Це працює тому, що скалярний контейнер проксіює виклики методів до
значення, яке він зберігає. Наприклад, після присвоєння
my $lang = 'Raku' метод .chars можна викликати
для змінної:
my $lang = 'Raku';
say $lang.chars; # 4Програма виводить 4 — кількість символів у рядку
'Raku'. Результат точно такий самий, як якби ви викликали
.chars безпосередньо для рядкового значення, а не для
змінної-контейнера:
say 'Raku'.chars; # 4Іншими словами, контейнер тихо переадресовує виклик
.chars рядку, який він містить, і повертає вам
результат.
Навігація курсом
← Значення за замовчуванням | Знижка за замовчуванням →
💪 Або перейдіть одразу до вправ цього
розділу.