You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何更地道地从已有哈希中提取指定键子集创建新哈希

优雅提取哈希子集作为子例程参数的Raku实现

你可以利用Raku的哈希切片和展开操作符|来简化代码,避免重复书写键名与哈希引用:

直接简化写法

a-subroutine('param',
  %(:$level, |%prm{<id target caption delta>})
)

高可维护性写法(适合键较多的场景)

先定义需要提取的键列表,再通过切片生成目标子集:

my @required-keys = <id target caption delta>;
a-subroutine('param', %(:$level, |%prm{@required-keys}))

语法说明

  • %prm{<id target caption delta>} 是哈希切片语法,会从%prm中提取指定键对应的键值对,返回一个仅包含这些键的新哈希。
  • | 是展开操作符,能把切片得到的哈希的所有键值对“展开”到匿名哈希%()中,和:$level(作用域变量的简写形式)合并成最终的参数哈希。

这种写法既保持了代码简洁性,又符合Raku的惯用语法风格,彻底消除了重复冗余的代码。

内容的提问来源于stack exchange,提问作者Richard Hainsworth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 12:57:07