Eu tenho um script com uma condicional e uma pilha de verificações usando a mesma variável. Algo semelhante a isto:
my $size = "123B";
say "OK" if $size ~~ Str && $size.ends-with("B") && $size.chop >= 0;
Seria possível reescrever a linha de forma a evitar a repetição de $size
?. Pensei em algo como junções que não tenho ideia de como aplicar a isso. Ou talvez outra coisa, mas mais curta da minha linha.
Que tal:
$_
é a 'variável de tópico' em Raku (e também em Perl). Você pode abreviar$_.ends-with()
ou encurtar ainda mais o código para.ends-with()
, conforme mostrado abaixo. Da mesma forma,$_.chop
pode ser encurtado ainda mais para.chop
, conforme mostrado abaixo.Ou usando o
[&&]
metaoperador de redução:Ou com uma
all()
junção:Ou elimine
given
totalmente o bloqueio:https://course.raku.org/essentials/loops/topic/
{ when /B$/ { say 'OK' } } given my Str $size = '123B'
minha resposta é um pouco atrevida, pois você sabe que $size é um Str se corresponder ao regex e você sabe se tem um B como último caractere, então .chop >= 0
esta generalização provavelmente está mais no espírito do que você perguntou