¿Cuál es la diferencia entre los dos puntos :
y la flecha adiposa =>
en Ruby? ¿O cuándo usar qué?¿Cuál es la diferencia entre los dos puntos ":" y la flecha adiposa "=>"
:foo => true
foo: true
¿Cuál es la diferencia entre los dos puntos :
y la flecha adiposa =>
en Ruby? ¿O cuándo usar qué?¿Cuál es la diferencia entre los dos puntos ":" y la flecha adiposa "=>"
:foo => true
foo: true
La sintaxis es para definir pares de clave/valor Hash, y la diferencia depende de la versión de Ruby.
soportados tanto en Rubí Rubí 1,8 y 1,9
:foo => true
admite sólo en Ruby 1,9
foo: true
Si está desarrollando en Ruby 1.9 que es mejor usar la sintaxis:
foo: true
ya que parece ser la dirección en la que la comunidad se está moviendo.
Esta última es la nueva sintaxis de Hash presentada en 1.9. Ver, por ejemplo:
http://breakthebit.org/post/8453341914/ruby-1-9-and-the-new-hash-syntax
los valores hash que las dos líneas generan son idénticos.
Esto es solo para cuando la tecla es un símbolo. Si quieres otro objeto para la llave, necesitarás la flecha adiposa como antes. –
¿Dónde escuchó que '=>' quedaría obsoleto? –
Sí, ¿dónde escuchaste que '=>' va a estar en desuso? No recuerdo tal cosa. E incluso si fuera cierto, rompería la funcionalidad principal de Hash que cualquier objeto puede servir como clave. Entonces, ¡solo los símbolos podrían usarse como claves si eso sucediera! por ejemplo: '{Object => Object}' ya no existiría [que era un pseudo código de un tipo]. – omninonsense
Lo siento, no recuerdo dónde escuché que pude haber inventado. Eliminé la referencia al hecho de que, en última instancia, está en desuso. – JDutil