En Ruby, ¿hay alguna diferencia entre las funcionalidades de each
, map
y collect
?¿Cuál es la diferencia entre el mapa, cada uno, y recoger?
55
A
Respuesta
107
each
es diferente de map
y collect
, pero map
y collect
son los mismos (técnicamente map
es un alias para collect
, pero en mi experiencia map
se utiliza con mucha más frecuencia).
each
realiza el bloque cerrado para cada elemento de la (Enumerable
) receptor:
[1,2,3,4].each {|n| puts n*2}
# Outputs:
# 2
# 4
# 6
# 8
map
y collect
producir un nuevo Array
que contiene los resultados del bloque aplicado a cada elemento del receptor:
[1,2,3,4].map {|n| n*2}
# => [2,4,6,8]
También hay map!
/collect!
definidos en Array
s; que modifican el receptor en su lugar:
a = [1,2,3,4]
a.map {|n| n*2} # => [2,4,6,8]
puts a.inspect # prints: "[1,2,3,4]"
a.map! {|n| n+1}
puts a.inspect # prints: "[2,3,4,5]"
21
Each
evaluará el bloque, pero desecha el resultado de la evaluación del bloque Each
y devuelve la matriz original.
irb(main):> [1,2,3].each {|x| x*2}
=> [1, 2, 3]
Map
/collect
devolver una matriz construida como resultado de la llamada del módulo para cada elemento de la matriz.
irb(main):> [1,2,3].collect {|x| x*2}
=> [2, 4, 6]
Cuestiones relacionadas
- 1. diferencia entre el mapa y cada
- 2. ¿Cuál es la diferencia entre uno mismo y la ventana?
- 3. Python: ¿cuál es la diferencia entre (1,2,3) y [1,2,3], y cuándo debo usar cada uno?
- 4. cuál es la diferencia entre mapa y hashmap en STL
- 5. ¿Cuál es la diferencia entre $ each (selector) y .Cada $ (selector)()
- 6. Backbone.Js - ¿Cuál es la diferencia entre el y $ el?
- 7. ¿Cuál es la diferencia entre Bitmap.Clone() y el nuevo mapa de bits (mapa de bits)?
- 8. ¿Cuál es la diferencia entre dict() y {}?
- 9. ¿Cuál es la diferencia entre # import y @class, y cuándo debo usar uno sobre el otro?
- 10. OpenGL (ES) - ¿Cuál es la diferencia entre frustum y orto?
- 11. ¿cuál es la diferencia entre:.! y: r !?
- 12. ¿Cuál es la diferencia entre .ToString (+) y ""
- 13. Cuál es la diferencia entre $ y jQuery
- 14. ¿Cuál es la diferencia entre "$^N" y "$ +"?
- 15. Cuál es la diferencia entre $ (...) y `...`
- 16. ¿Cuál es la diferencia entre `##` y `hashCode`?
- 17. ¿Cuál es la diferencia entre "palabra clave" y "palabra reservada"?
- 18. ¿Cuál es la diferencia entre el conjunto <pair> y el mapa en C++?
- 19. ¿Cuál es la diferencia entre {0} y ""?
- 20. Cuál es la diferencia entre = y: =
- 21. ¿Cuál es la diferencia entre ".equals" y "=="?
- 22. ¿Cuál es la diferencia entre [indefinido] y [,]?
- 23. ¿Cuál es la diferencia entre + = y = +?
- 24. ¿Cuál es la diferencia entre " " y ""?
- 25. Rubí matrices: SELECT(), recoger(), y el mapa()
- 26. ¿Cuál es la diferencia entre la vinculación estática y dinámica?
- 27. ¿Cuál es la diferencia entre preferredLocalization y preferredLanguage?
- 28. ¿cuál es la diferencia entre jolokia y jmxtrans? ¿Cuándo elegir uno sobre el otro?
- 29. ¿Cuál es la diferencia entre VBScript's y el operador &?
- 30. ¿Cuál es la diferencia entre listas y tuplas en Python?
mapa es la versión elegido por la comunidad https://github.com/bbatsov/ruby-style-guide#map-fine-select-reduce-size –