118 votes

Existe-t-il une différence entre les notations de hachage `: key =>" value "` et `key:" value "`?

Existe-t-il une différence entre les notations :key => "value" (hashrocket) et key: "value" (Ruby 1.9)?

Sinon, j'aimerais utiliser la notation key: "value" . Existe-t-il un joyau qui m’aide à convertir les notations :x => en x: ?

147voto

mu is too short Points 205090

Oui, il y a une différence. Ceux-ci sont légaux:

h = { :$in => array }
h = { :'a.b' => 'c' }
h[:s] = 42

mais ce ne sont pas:

h = { $in: array }
h = { 'a.b': 'c' }
h[s:] = 42

Vous pouvez également utiliser quelque chose comme une clé avec => de sorte que vous pouvez le faire:

h = { C.new => 11 }
h = { 'where is' => 'pancakes house?' }

mais vous ne pouvez pas faire ceci:

h = { C.new: 11 }
h = { 'where is': 'pancakes house?' }

Le style JavaScript (key: value) n'est utile que si l'ensemble de vos clés de Hachage sont "simples" symboles (plus ou moins quelque chose qui correspond /\A[a-z_]\w\z/i, autant que je sache, l'analyseur utilise son étiquette de modèle de ces touches).

L' :$in style symboles de montrer un peu juste lors de l'utilisation de MongoDB si vous finirez mélange de Hachage styles si vous utilisez MongoDB. Et, si vous travaillez déjà avec des touches spécifiques de Hachages (h[:k]) plutôt que de simplement l'ensemble de hachages (h = { ... }), vous devrez toujours utiliser le côlon, du premier style de symboles; vous aurez aussi à utiliser le premier colon de style pour les symboles que vous utilisez à l'extérieur de Hachages. Je préfère être constant pour que je ne vous embêtez pas avec le style JavaScript.

10voto

ranksrejoined Points 631

key: "value" est une fonction pratique de Ruby 1.9; tant que vous savez que votre environnement le supportera, je ne vois aucune raison de ne pas l'utiliser. Il est beaucoup plus facile de taper un colon que une fusée, et je pense que cela a l'air beaucoup plus propre. Pour ce qui est de la conversion, ce n’est probablement pas le cas, mais cela semble être une expérience d’apprentissage idéale pour vous, si vous ne connaissez pas déjà la manipulation de fichier et les expressions régulières.

4voto

sczizzo Points 2057

Les assignations de style JSON key: value font partie de la nouvelle syntaxe de hachage Ruby 1.9. N'oubliez donc pas que cette syntaxe ne fonctionnera pas avec les anciennes versions de Ruby. En outre, les clés vont être des symboles. Si vous pouvez vivre avec ces deux contraintes, les nouveaux hachages fonctionnent exactement comme les anciens. il n'y a aucune raison (autre que le style, peut-être) de les convertir.

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