我试图在像这样的哈希的键或值上使用any
或none
:
my %w=(a => 1, b => 2);
say %w.keys; # works
say so 'a' == %w.keys.any; # doesn't work
我已经检查了Raku文档的哈希和映射部分,但无法解决此问题。如何解决?谢谢。
代码死像这样:
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
与字符串比较时使用cmp
运算符:
say so 'a' cmp %w.keys.any;