Ein Hash-Objekt ist ein Objekt, das Daten mit einer Kombination aus Schlüssel und Wert darstellen kann.
Hash wird mit mittleren Klammern und Doppelpunkten erstellt.
irb(main):082:0> user = { name: 'Masuyama' }
=> {:name=>"Masuyama"}
Bei der Doppelpunkt-basierten Notation wie zuvor ist der Schlüssel ein Symbolobjekt. Sie können den entsprechenden Wert abrufen, indem Sie im Hash-Objekt ein Symbol angeben.
irb(main):083:0> user[:name]
=> "Masuyama"
Sie können den Wert auch neu schreiben, indem Sie einen bestimmten Schlüssel angeben und den Wert zuweisen.
irb(main):095:0> user = { name: 'Masuyama' }
=> {:name=>"Masuyama"}
irb(main):096:0> user[:name] = 'Yamada'
=> "Yamada"
irb(main):097:0> user[:name]
=> "Yamada"
Sie können die Schlüssel als Array mithilfe der Schlüsselmethode abrufen.
irb(main):110:0> users = { id: 1, name: 'Masuyama', age
: 29 }
=> {:id=>1, :name=>"Masuyama", :age=>29}
irb(main):111:0> users.keys
=> [:id, :name, :age]
Wie bei Schlüsseln können Sie die Methode values verwenden, um die Werte als Array abzurufen.
irb(main):112:0> users = { id: 1, name: 'Masuyama', age
: 29 }
=> {:id=>1, :name=>"Masuyama", :age=>29}
irb(main):113:0> users.values
=> [1, "Masuyama", 29]
Mit Hash können Sie jedes Element mit jeder Methode verarbeiten. Wenn Sie jede Methode für Hash verwenden, übergeben Sie sowohl Schlüssel als auch Wert an den Block.
irb(main):118:1* users.each do |k, v|
irb(main):119:1* puts "#{k} = #{v}"
irb(main):120:0> end
id = 1
name = Masuyama
age = 29
=> {:id=>1, :name=>"Masuyama", :age=>29}
Verwenden Sie die Löschmethode, um einige Schlüssel und Werte zu löschen. Geben Sie zu diesem Zeitpunkt den Schlüssel an, der im ersten Argument gelöscht werden soll.
irb(main):124:0> users
=> {:id=>1, :name=>"Masuyama", :age=>29}
irb(main):125:0> users.delete(:age)
=> 29
irb(main):126:0> users
=> {:id=>1, :name=>"Masuyama"}