Expliquer les objets Ruby Hash

Qu'est-ce que Hash?

Un objet Hash est un objet qui peut représenter des données avec une combinaison de clé et de valeur.

Comment écrire Hash

Le hachage est créé à l'aide de parenthèses et de deux-points.

irb(main):082:0> user = { name: 'Masuyama' }
=> {:name=>"Masuyama"}

Type de récupération de la valeur de hachage

Dans le cas de la notation basée sur deux points comme précédemment, la clé est un objet symbole. Vous pouvez récupérer la valeur correspondante en spécifiant un symbole dans l'objet de hachage.

irb(main):083:0> user[:name]
=> "Masuyama"

Réécriture de hachage

Vous pouvez également réécrire la valeur en spécifiant une clé spécifique et en attribuant la valeur.

irb(main):095:0> user = { name: 'Masuyama' }
=> {:name=>"Masuyama"}
irb(main):096:0> user[:name] = 'Yamada'
=> "Yamada"
irb(main):097:0> user[:name]
=> "Yamada"

Obtenez une liste de clés

Vous pouvez obtenir les clés sous forme de tableau en utilisant la méthode keys.

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]

Obtenez une liste de valeurs

Comme les clés, vous pouvez utiliser la méthode values pour obtenir les valeurs sous forme de tableau.

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]

chaque méthode en hachage

Avec le hachage, vous pouvez traiter chaque élément avec chaque méthode. Si vous utilisez la méthode each pour le hachage, vous passerez à la fois la clé et la valeur au bloc.

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}

Supprimer la valeur de hachage

Utilisez la méthode de suppression pour supprimer certaines clés et valeurs. À ce stade, spécifiez la clé à supprimer dans le premier argument.

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"}

Recommended Posts

Expliquer les objets Ruby Hash
Expliquer l'objet Symbole de Ruby
Expliquer l'objet Enumerator de Ruby
Hacher