Rubyリファレンス: Home

has_key?, key? (Hash)

Edit   History

標準クラス・モジュール > Hash > has_key?, key?

hash.has_key?(key)
hash.key?(key)

has_key?メソッドは、ハッシュが引数keyと同じキーを持っていればtrue、なければfalseを返します。

key?メソッドは、has_key?の別名です。また、include?, member?メソッドもhas_key?の別名です。

「値がfalsenilでもいいからキーがあるかどうか調べたい」というときは、hash[key]ではなくhas_key?メソッドを使うといいでしょう。

person = { :name => 'Sato', :sex => 'male', :country => nil }
puts(person[:country] ? "OK" : "NG")
puts(person.has_key?(:country) ? "OK" : "NG")
NG
OK

関連項目