Курс Raku / Розширені / Порядок виконання / Префікси інструкцій 🆕 / Вправи / Заглушити попередження
Розв’язання: Заглушити попередження
Ось один із можливих варіантів розв’язання задачі.
Код
my $name;
my $greeting = quietly { "Hello, " ~ $name ~ "!" };
say $greeting;🦋 Вихідний код можна знайти у файлі silence-warning.raku.
Вивід
Hello, !Коментарі
Інтерполяція невизначеного
$nameу рядок зазвичай спричиняє попередження «use of uninitialized value». Загортання виразу вquietlyприглушує його, тож виводиться лише привітання.Як і
do,quietlyповертає значення свого блоку, тож зібраний рядок (де відсутнє ім’я лишає порожній проміжок) зберігається в$greeting.quietlyлише ховає попередження — значення все одно залишається невизначеним. Якщо ж ви хочете дати раду відсутньому значенню, підставте типове за допомогою оператора «визначене або»//:$name // 'friend'дає'friend', коли$nameневизначена, тож"Hello, " ~ ($name // 'friend') ~ "!"виводитьHello, friend!узагалі без попереджень.