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

如何检查Pair数组中键值的类型?需实现Str=>Int类型校验

实现带类型约束的有序键值对数组(Str=>Int)

在Raku中,你可以直接通过参数化Pair类型来约束数组元素的键值类型,达到类似my Int %list{Str}的类型校验效果,同时保留数组的有序性。

具体实现

声明数组时指定元素类型为Pair[Str, Int],这样向数组中push元素时,会自动校验每个Pair的键必须是Str类型、值必须是Int类型:

# 声明仅接受Str=>Int类型Pair的数组
my Pair[Str, Int] @ordered-kv;

# 合法的push操作
@ordered-kv.push: "Roma" => 1;
@ordered-kv.push: "Paris" => 2;
@ordered-kv.push: "Lisboa" => 3;

# 以下操作会触发类型错误(可取消注释测试)
# @ordered-kv.push: 42 => "Berlin";   # 键为Int,不符合Str要求
# @ordered-kv.push: "Madrid" => "42"; # 值为Str,不符合Int要求

效果说明

  • 符合Str=>Int类型的Pair可以正常添加到数组中,数组会严格保留元素的插入顺序。
  • 如果尝试添加键或值类型不匹配的Pair,Raku会直接抛出类型检查异常,阻止非法元素进入数组,确保数据类型的一致性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 07:53:37