h = {"apple" => "red"}
h.keys #=> ["apple"]
h.keys[0] # => "apple"
a = [1, [2, [3, [4, 5]]]]
a.flatten(1) #=> [1, 2, [3, [4, 5]]]
a.flatten(2) #=> [1, 2, 3, [4, 5]]
a.flatten(3) #=> [1, 2, 3, 4, 5]
a.flatten #=> [1, 2, 3, 4, 5]
h1 = {"red" => "apple"}
h2 = {"red" => "tomato"}
h1.merge(h2) #=> {"red"=>"tomato"}
h2.merge(h1) #=> {"red"=>"apple"}
Comme ci-dessus, si les clés sont identiques, elles seront écrasées par la valeur de hachage de l'argument. merge peut recevoir des blocs comme indiqué ci-dessous et peut spécifier le comportement lorsque la clé est dupliquée.
h1 = {"red" => "apple"}
h2 = {"red" => "tomato"}
h1.merge(h2){|key,h1v,h2v| "#{h1v}" + "," + "#{h2v}"}
#=> {"red"=>"apple,tomato"}
h = {"red" => "apple"}
h.key?("red") #=> true
h.has_key?("red") #=> true
h.key?("blue") #=> false
h.has_key?("blue")#=> false