Курс по Raku / Напреднали / Управление на потока / Префикси на инструкции 🆕 / Exercises / Заглушете предупреждение
Решение: Заглушете предупреждение
Ето едно възможно решение на задачата.
Код
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!без никакво предупреждение.