40 votos

¿En Ruby, lo "=>" significa y cómo funciona?

Aprendiendo Ruby he llegado a través de la "= >" operador en ocasiones. Generalmente lo veo en forma de

:symbol => value

y parece que se utilizará con frecuencia al pasar valores a funciones. ¿Lo que exactamente se llama que el operador? ¿Qué media? ¿Está construido en Ruby o es algo que diferentes frameworks como Rails y DataMapper agregue a la clase de símbolo? ¿Sólo se usa en conjunto con la clase de símbolo? Gracias.

48voto

sepp2k Puntos 157757

=> separa las claves de los valores en un hashmap literal. No es overloadable y no específicamente relacionados a los símbolos.

Un hashmap literal tiene la forma {key1 => value1, key2 => value2, ...}, pero cuando se utiliza como último parámetro de una función, se puede dejar fuera de las llaves. Así que cuando veas una llamada a una función como f(:a => 1, :b => 2), f se llama con un argumento, que es un hashmap que tiene las llaves :a y :b y los valores de 1 y 2.

12voto

Cratchitimo Puntos 841

Usted puede escuchar el operador que se conoce como un "hash cohetes, lo que significa que cuando la definición de un rubí de hash.

Este es el Rubí Hash documentación, si usted no está familiarizado: http://www.ruby-doc.org/core/classes/Hash.html

Tenga en cuenta que en Ruby 1.9, si se está definiendo un hash, que utiliza símbolos como llaves, ahora hay una sintaxis alternativa disponible para usted: http://blog.peepcode.com/tutorials/2011/rip-ruby-hash-rocket-syntax

5voto

amrnt Puntos 941

Consejo: Si usas en un hash como {:a => "A", :b => "B"} . En Ruby 1.9, se puede utilizar como el hash JSON:

{
  a: "A",
  b: "B"
}

Ver: http://blog.peepcode.com/tutorials/2011/rip-ruby-hash-rocket-syntax

4voto

Andrew Grimm Puntos 22996

Si quieres hacer cualquier googlear más, => a veces se llama un hashrocket, porque se ve como un cohete (en el mismo sentido que <=> parece ser una nave espacial), y se utiliza en algoritmos hash.

O usted podría utilizar SymbolHound.

0voto

d135-1r43 Puntos 1387

En adición a Ruby ¿qué significa "=>" significa y cómo funciona?:

Lo que más le va a ver el => para definir los parámetros de una función. Piense en esto como una agradable comodidad: Usted no necesita recordar el orden correcto de sus parámetros, ya que todos los parámetros están envueltos en un gigante de hash. Así que si usted tiene un ayudante método como

link_to "My link", my_path, :confirm => "Are you sure?"

esta es la manera mejor que

link_to "My link", my_path, null, null, null, null, "Are you sure?"

sólo porque usted quiere usar una rara vez se utiliza el parámetro. Así que paso de parámetros con un hash es sólo una convención en Ruby/Rails para hacer la vida más fácil.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X