我正在尝试在这样的散列的键或值上使用any或none:
my %w=(a => 1, b => 2);
say %w.keys; # works
say so 'a' == %w.keys.any; # doesn't work
Run Code Online (Sandbox Code Playgroud)
我已经检查了 Raku 文档的哈希和地图部分,但无法解决这个问题。如何解决?谢谢。
Jon*_*ton 11
代码是这样死掉的:
Cannot convert string to number: base-10 number must begin with
valid digits or '.' in '?a' (indicated by ?)
Run Code Online (Sandbox Code Playgroud)
发生这种情况是因为==是数字比较运算符,因此它在进行比较之前首先尝试将参数强制转换为数字。
哈希键(至少默认情况下)是字符串,因此eq这里需要字符串比较运算符:
my %w=(a => 1, b => 2);
say so 'a' eq %w.keys.any; # True
Run Code Online (Sandbox Code Playgroud)