hash - :exists in raku 意外失败

标签 hash key exists raku

在尝试调试程序代码时,我遇到了以下问题:

(base) hsmyers@BigIron:~$ rlwrap -A raku

To exit type 'exit' or '^D'
> my regex N { <[A..G]> };
regex N { <[A..G]> }
> my %h = A => 1, B => 2;
{A => 1, B => 2}
> 'B' ∈ %h.keys
True
> my $m = 'B' ~~ / <N> /;
「B」
 N => 「B」
> $m ∈ %h.keys
False
> $m.Str ∈ %h.keys
True
> my $n = $m.Str
B
> $n ∈ %h.keys
True
> %h<B>:exists
True
> %h<$n>:exists
False
>

总之,问题是你如何从匹配对象到字符串,这样 %whatever:exists 将起作用。 “键元素”提供了一种解决方法,但我认为这不是检查键是否存在的正确方法?

最佳答案

您将匹配项放入 Str使用 ~ 上下文,但我认为问题在于您使用的是文字引号 <>对于一个变量。 %h<$n>返回与文字键 $n 对应的值。您需要使用 %h{$n} 来检索 $n 的内容对应的值.此外,如果 $n 包含 Match它将被放在 Str 上下文中,因此应该可以工作。

关于hash - :exists in raku 意外失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60495101/

相关文章:

security - key 拉伸(stretch)算法与密码限制 "hashing"

c# - 使用键的克隆从哈希表中检索值; C#

.net - RSA 私钥是否始终包含公钥,还是只是 .NET?

PHP 重命名文件(如果存在)

php - 数据库中存在名称吗?拉维尔

algorithm - universal hashing是不是每次操作完成后都会重新选择一个新的hash函数?

ruby-on-rails - 在 Ruby 中查询 JSON 嵌套哈希响应时出现问题

git - 如何获取在预接收 Hook 中提交的所有哈希值?

python - 字典创建中的可选字典项

c - 对 `memcached_exist' 的 undefined reference