Curso de Raku / Avanzado / Más sobre los tipos integrados / Construcciones de entrecomillado / Exercises / Un closure en una cadena q
Solución: Un closure en una cadena q
Aquí tienes una de las posibles soluciones:
Código
my $x = 10;
say q:c/$x squared is {$x ** 2}/;🦋 Encuentra el programa en el archivo closure-quote.raku.
Salida
$x squared is 100Comentarios
El adverbio
:c(closure) activa la interpolación de código incrustado{ … }en la formaq, que de otro modo es literal. Dentro de las llaves,$xes código real, así que{$x ** 2}se evalúa como100.El
$xfuera de las llaves se deja exactamente como está escrito, porque el adverbio escalar:sno está habilitado. Este es precisamente el sentido de los adverbios por característica: obtienes código incrustado sin activar también la interpolación de$.Los adverbios se pueden combinar. Si añades
:stambién, el$xinicial se interpola — ambas características están activas a la vez:
my $x = 10;
say q:c:s/$x squared is {$x ** 2}/; # 10 squared is 100