loops - 在 Raku 的内部循环中使用循环的位置参数
问题描述
这是代码:
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
在可能的情况下,我总是建议命名你的变量,这使得它们也被限制在内部块中。
推荐阅读
- laravel - API 资源为空白
- css - 使用 `backdrop-filter: blur` 和 `mix-blend-mode`,文本颜色无法正确显示
- c++ - 交换参数
- javascript - 如何使用循环将客户名称放入 vs-input 中,然后它应该将客户 ID 传递给 VueJS 中的 form.co_id
- grpc - 将 HTTP 和 gRPC 请求处理到 Envoy
- amazon-web-services - 如何从 CPLEX OPL 12.10 中提取模型的 .lp 文件
- reactjs - 有没有人尝试使用 react-facebook npm 在你的 react 应用程序中插入 FB 组件?
- rdbms - 错误代码:2068。由于访问限制,LOAD DATA LOCAL INFILE 文件请求被拒绝。0.000 秒
- jwt - WSO2 API 管理器 - jwt 受保护的端点暴露
- python - 获取所有对消息做出反应的用户,Discord Python