在Raku中使用哈希键和值中的任何一个或不使用

问题描述 投票:0回答:1

我试图在像这样的哈希的键或值上使用anynone

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

我已经检查了Raku文档的哈希和映射部分,但无法解决此问题。如何解决?谢谢。

hash raku
1个回答
1
投票

代码死像这样:

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

0
投票

与字符串比较时使用cmp运算符:

say so 'a' cmp %w.keys.any;
© www.soinside.com 2019 - 2024. All rights reserved.