2011-09-05 16 views
10

Sé que puedo hacer esto en Ruby:¿Cómo calcular 'map' en Ruby sin usar bloques?

['a', 'b'].map do |s| s.to_sym end 

y sale esto:

[:a, :b] 

Estoy buscando una manera más concisa para hacerlo, sin necesidad de utilizar un bloque. Lamentablemente, esto no funciona:

['a', 'b'].map #to_sym 

¿Puedo hacer algo mejor que con el código inicial?

Respuesta

11

leer un poco sobre Symbol#to_proc:

Esto funciona si está utilizando Rubí 1.8.7 o superior, o si usted está utilizando carriles - ActiveSupport añadirá este funcionalidad para ti

+0

Funciona en 1.8.7 también. 1.8.7 (principal): 0> RUBY_DESCRIPTION => "ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]" 1.8.7 (principal): 0> ['a', 'b '] .map (&: to_sym) => [: a,: b] – lucapette

+0

lucapette: Sí, hice una edición rápida para agregar/corregir cierta información. – PreciousBodilyFluids

+0

Sí, lo vi. Ya sabes, con todas estas implementaciones por ahí tengo problemas para recordar cosas. Cuando leí tu respuesta fui a comprobar que la recordaba bien;) – lucapette

5

['a', 'b'].map(&:to_sym) es más corta

Cuestiones relacionadas