Ruby Language Créer un hash


Exemple

Un hachage dans Ruby est un objet qui implémente une table de hachage , mappant les clés aux valeurs. Ruby prend en charge une syntaxe littérale spécifique pour la définition des hachages à l'aide de {} :

my_hash = {}  # an empty hash
grades = { 'Mark' => 15, 'Jimmy' => 10, 'Jack' => 10 }

Un hachage peut également être créé en utilisant la new méthode standard:

my_hash = Hash.new  # any empty hash
my_hash = {}        # any empty hash

Les hachages peuvent avoir des valeurs de tout type, y compris des types complexes tels que des tableaux, des objets et d'autres hachages:

mapping = { 'Mark' => 15, 'Jimmy' => [3,4], 'Nika' => {'a' => 3, 'b' => 5} }
mapping['Mark']   # => 15
mapping['Jimmy']  # => [3, 4]
mapping['Nika']   # => {"a"=>3, "b"=>5}

Les clés peuvent également être de tout type, y compris les plus complexes:

mapping = { 'Mark' => 15, 5 => 10, [1, 2] => 9 }
mapping['Mark']  # => 15
mapping[[1, 2]]  # => 9

Les symboles sont couramment utilisés comme clés de hachage et Ruby 1.9 introduit une nouvelle syntaxe spécifiquement pour raccourcir ce processus. Les hachages suivants sont équivalents:

# Valid on all Ruby versions
grades = { :Mark => 15, :Jimmy => 10, :Jack => 10 }
# Valid in Ruby version 1.9+
grades = { Mark: 15, Jimmy: 10, Jack: 10 }

Le hachage suivant (valide dans toutes les versions de Ruby) est différent , car toutes les clés sont des chaînes:

grades = { "Mark" => 15, "Jimmy" => 10, "Jack" => 10 }

Bien que les deux versions de syntaxe puissent être mélangées, les opérations suivantes sont déconseillées.

mapping = { :length => 45, width: 10 }

Avec Ruby 2.2+, il existe une syntaxe alternative pour créer un hachage avec des clés de symbole (le plus utile si le symbole contient des espaces):

grades = { "Jimmy Choo": 10, :"Jack Sparrow": 10 }
# => { :"Jimmy Choo" => 10, :"Jack Sparrow" => 10}