2012-01-15 1 views

Répondre

4

Vous pouvez le faire:

@test.inject(:+) 
+0

les plis ont besoin de l'identité comme valeur initiale: '@ test.inject (0,: +)' – tokland

+1

Pas avec ruby, si vous ne fournissez pas de valeur initiale, il utilise la première valeur de la collection comme valeur initiale: http : //ruby-doc.org/core-1.9.3/Enumerable.html –

+0

@tokland: "Si vous ne spécifiez pas explicitement une valeur initiale pour memo, alors utilise le premier élément de collection est utilisé comme valeur initiale de mémo " (extrait de [the docs] (http://ruby-doc.org/core-1.9.3/Enumerable.html#method-i-inject)) – steenslag

0
sum = 0 
@test.each { |el| sum+=el } 
+0

qui est ok pour beaucoup de langages (impératifs), mais dans Ruby, le (fonctionnel) "Enumerable # inject" est la solution idiomatique. – tokland

Questions connexes