gpt4 book ai didi

loops - 在 Raku 的内部循环中使用循环的位置参数

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

这是代码:

my @s=<a b c d>;
for @s.kv {
for ($^k ... @s.elems) {
printf("%s ", $^v);
}
printf("\n");
}

预期输出为:
# a b c d
# b c d
# c d
# d

但它给出了这个错误(可能等等)
key 0, val 1 Too few positionals passed; expected 2 arguments but got 1

看起来像主循环的位置变量 $^k$^v不能在内循环中使用。如何解决?谢谢。
更新:修复了内循环内的错字

最佳答案

所以对于你想做的事情,我会这样处理:

my @s = <a b c d>;
for ^@s.elems -> $start-index {
for @s[$start-index..*] -> $value {
printf("%s ", $value );
}
print("\n");
}

虽然我真的会这样做。
my @s = <a b c d>;
(^@s.elems).map( { @s[$_..*].join(" ").say } )

获取从 0 到数组中元素数的范围。然后从那里到每个切片,加入空格并说。

关于 $^k 等变量的注释这些仅适用于当前块(因此您的上述代码不起作用)。一般来说,你真的只想在 map 中使用它们。 , grep或其他类似的事情。在可能的情况下,我总是建议命名您的变量,这也使它们的作用域也位于内部块内。

关于loops - 在 Raku 的内部循环中使用循环的位置参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59630120/

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