Curso de Raku / Avanzado / Control de flujo / Prefijos de sentencia / Exercises / Silenciar una advertencia
Solución: Silenciar una advertencia
Aquí tienes una posible solución para la tarea.
Código
my $name;
my $greeting = quietly { "Hello, " ~ $name ~ "!" };
say $greeting;🦋 Puedes encontrar el código fuente en el archivo silence-warning.raku.
Salida
Hello, !Comentarios
Interpolar el
$nameindefinido en la cadena normalmente dispara una advertencia de “uso de valor no inicializado”. Envolver la expresión enquietlyla suprime, así que solo se imprime el saludo.Al igual que
do,quietlydevuelve el valor de su bloque, por lo que la cadena ensamblada (con el nombre faltante dejando un espacio vacío) se almacena en$greeting.quietlysolo oculta la advertencia; el valor sigue siendo indefinido. Si en cambio quieres lidiar con el valor faltante, proporciona un valor predeterminado con el operador definido-o//:$name // 'friend'produce'friend'cuando$namees indefinido, así que"Hello, " ~ ($name // 'friend') ~ "!"imprimeHello, friend!sin ninguna advertencia.