puedo encontrar este código en Ruby a ser bastante intrigante"(1..4) .inject (y +)" trabajo en Rubí
(1..4).inject(&:+)
Ok, ya sé lo inject
hace, y yo saber que este código es básicamente equivalente a
(1..4).inject(0) {|a,n| a + n}
pero ¿cómo funciona exactamente?
¿Por qué &:+
es lo mismo que escribir el bloque {|a,n| a + n}
?
¿Por qué no necesita un valor inicial? Estoy bien con el valor inicial es 0, pero (1..4).inject(&:*)
funciona también, y no el valor inicial debe ser de 1 ...
Estas son realmente dos preguntas completamente separadas, la primera de las cuales es un duplicado de no menos de otras 11 preguntas que ya han sido Preguntado y respondido aquí en StackOverflow: http://StackOverflow.Com/q/99318/ http://StackOverflow.Com/q/1217088/ http://StackOverflow.Com/q/1792683/ http://StackOverflow.Com/q/1961030/http://StackOverflow.Com/q/2096975/ http://StackOverflow.Com/q/2211751/ http://StackOverflow.Com/q/2259775/ http://StackOverflow.Com/q/2388337/http://StackOverflow.Com/q/2697024/ http://StackOverflow.Com/q/3888044/ http://StackOverflow.Com/q/4512587/ –