gpt4 book ai didi

raku - Perl6 : is there a phaser that runs only when you fall out of a loop?

转载 作者:行者123 更新时间:2023-12-04 12:05:49 24 4
gpt4 key购买 nike

拿这个示例代码:

#!/usr/bin/env perl6

use v6.c;

ROLL:
for 1..10 -> $r {
given (1..6).roll {
when 6 {
say "Roll $r: you win!";
last ROLL;
}
default {
say "Roll $r: sorry...";
}
}
LAST {
say "You either won or lost - this runs either way";
}
}

我希望能够区分跳出循环和明确说 last .
理想情况下,会有一个移相器,但据我所知,只有 LAST在任何一种情况下都运行。

有没有一种优雅的方法来做到这一点? (优雅,因此无需添加 $won 变量。)

最佳答案

我们正在处理 Perl,所以有不止一种方法可以做到;其中之一是使用主题变量 $_保留该值,以便我们可以轻松地重复匹配它:

constant N = 5;
for flat (1..6).roll xx * Z 1..N -> $_, $n {
print "roll $n: $_ ";

when 6 {
put "(won)";
last;
}

default {
put "(lost)";
}

LAST {
print "result: ";
when 6 { put "winner :)" }
default { put "loser :(" }
}
}

关于raku - Perl6 : is there a phaser that runs only when you fall out of a loop?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36117329/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com