La publicación bien citada de RIP Hash rocket parecería implicar que la sintaxis de Hash Rocket ( :foo => "bar"
) está en desuso a favor del hash ( foo: "bar"
) de estilo JSON nuevo en Ruby , pero no puedo encontrar ninguna referencia definitiva que indique el formulario Hash Rocket en realidad está desaprobado / desaconsejado a partir de Ruby 1.9.
99
Respuestas:
El autor de esa publicación de blog está siendo demasiado dramático y tonto, todavía
=>
es bastante necesario . En particular::'where.is' => x
es válido pero'where.is': x
no lo es. Ruby 2.2 ha solucionado este problema, por lo que puede decirlo'where.is': x
en Ruby 2.2+.:$set => x
es válido pero$set: x
no lo es. En Ruby 2.2+ puede solucionar este problema con comillas:'$set': x
hará lo correcto.'s' => x
es válido pero's': x
es algo completamente diferente.Puede eludir lo anterior de la manera obvia, por supuesto:
pero eso es feo e innecesario.
El cohete no irá a ninguna parte sin paralizar los Hashes de Ruby.
fuente
h[:s]
que hago), por lo que la sintaxis de estilo JavaScript es una complicación inútil para mí. Me parece una idea mal pensada y ahora estamos atrapados con ella y la confusión relacionada para siempre.a = [0,1,4,9]
vsa = Array.new(4){ |i| i**2 }
. ¿Por qué usar el primero cuando a veces necesita usar el segundo? Respuesta: porque es más conveniente. TIMTOWTDI complica el lenguaje, pero esto es una compensación. Lua es realmente elegante en el núcleo y, por lo tanto, fácil de aprender, pero molesto de codificar. Ruby tiene muchos casos especiales y características personalizadas que hacen que sea más difícil de aprender, pero es un placer programarlo. Yo, por mi parte, bienvenido la notación Hash-with-symbol-keys más simple de escribir y más fácil de leer para el caso común.my_hash = {a:1}
ymyhash[:a] = 1
es, al menos, bastante molesta. Estoy seguro de que no soy el único que se siente así.