74 votes

Utilisation d’entiers comme clés de hachage

Est-il approprié d’utiliser des entiers comme clés dans un hachage Ruby ?

Chaque exemple de la documentation montre une chaîne ou un symbole utilisé comme clé, mais jamais comme entier.

En interne, les entiers seraient-ils convertis en chaînes ? J’ai vu des informations contradictoires sur le sujet.

En d’autres termes, y a-t-il un inconvénient significatif à utiliser des clés entières pour un hachage ?

73voto

Tilo Points 13833

bien sûr, vous pouvez utiliser des entiers comme clés...

=>

irb est votre ami! Essaie..


En fait, vous pouvez utiliser n’importe quel objet Ruby comme clé (ou valeur). Nous ne pensons généralement pas à utiliser des hachages comme celui-ci, mais cela pourrait être très utile.

9voto

Óscar López Points 97105

La seule exigence pour utiliser un objet comme clé de hachage est qu’il doit répondre au hachage du message avec une valeur de hachage, et la valeur de hachage d’une clé donnée ne doit pas changer. Par exemple, si vous appelez ceci :

Vous pouvez voir que le chiffre 1 répond en effet au message de hachage

3voto

knut Points 10107

Il y a déjà des réponses sur le `` .

Une explication, pourquoi il n’y a pas d’exemples avec des entiers comme clés de hachage.

Les clés de hachage ont (la plupart du temps) une signification. Il peut s’agir d’un nom d’attribut et de sa valeur (par `` exemple...).

Lorsque vous avez un entier comme clé, votre sémantique peut être 'premier, deuxième...' (1). Mais alors vous n’utilisez pas un hachage, mais un tableau pour stocker vos valeurs.

(1) Un contre-exemple peut être une clé étrangère dans une base de données.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X