首页 > 解决方案 > 在 Raku 中对哈希键和值使用任何或不使用

问题描述

我正在尝试在这样的哈希的键或值上使用anyor :none

my %w=(a => 1, b => 2);
say %w.keys; # works
say so 'a' == %w.keys.any; # doesn't work

我检查了 Raku 文档的 hash and map 部分,但无法解决这个问题。如何解决?谢谢。

标签: hashraku

解决方案


代码像这样死掉:

Cannot convert string to number: base-10 number must begin with
valid digits or '.' in '⏏a' (indicated by ⏏)

发生这种情况是因为==是数字比较运算符,因此它首先尝试将参数强制转换为数字,然后再进行比较。

哈希键 - 至少默认情况下 - 是字符串,因此eq这里需要字符串比较的运算符:

my %w=(a => 1, b => 2);
say so 'a' eq %w.keys.any; # True

推荐阅读