ruby – grep在Hash上是什么意思?

{'a' => 'b'}.grep /a/
=> []
>> {'a' => 'b'}.grep /b/
=> []

它似乎与键或值不匹配.它做了我不能辨别的事情吗?

解决方法

grep是在Enumerable上定义的,即它是一个对Hashes一无所知的通用方法.它可以运行Enumerable的任何元素. Ruby没有键值对的类型,它只是将哈希条目表示为双元素数组,其中第一个元素是键,第二个元素是值.

grep使用===方法过滤掉元素.既然都没有

/a/ === ['a','b']

也不

/b/ === ['a','b']

是的,你总是得到一个空数组作为响应.

试试这个:

def (t = Object.new).===(other)
  true
end

{'a' => 'b'}.grep t
# => [['a','b']]

在这里,您可以看到grep如何与Hashes一起使用.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...