我试图在这样的散列的键或值上使用 any
或 none
:
my %w=(a => 1, b => 2);
say %w.keys; # works
say so 'a' == %w.keys.any; # doesn't work
我已经检查了 Raku 文档的哈希和 map 部分,但无法解决这个问题。如何解决?谢谢。
最佳答案
代码是这样死的:
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
关于hash - 在 Raku 中对哈希键和值使用 any 或 none,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59683374/