检测哈希中是否存在键值对

Kur*_*t W 2 ruby hash key-value

我找不到确定哈希中是否存在键值对的方法。

h4 = { "a" => 1, "d" => 2, "f" => 35 }
Run Code Online (Sandbox Code Playgroud)

我可以使用Hash#has_value?Hash#has_key?单独查找有关键或值的信息,但如何检查是否存在一对?

我所追求的伪代码:

if h4.contains_pair?("a", 1)
Run Code Online (Sandbox Code Playgroud)

Jor*_*ing 5

只需使用这个:

h4['a'] == 1
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎太过分了,但是您可以使用如下方法对 Hash 进行猴子修补:

class Hash
  def contains_pair?(key, value)
    key?(key) && self[key] == value
  end
end
Run Code Online (Sandbox Code Playgroud)