在 Raku 的散列键和值上使用 any 或 none
Using any or none on the hash keys and values in Raku
我正在尝试对这样的散列的键或值使用 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;
我正在尝试对这样的散列的键或值使用 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;