Έχω έναν πίνακα ακεραίων αριθμών.
Για παράδειγμα:
array = [123,321,12389]
Υπάρχει κάποιος ωραίος τρόπος για να πάρετε το άθροισμά τους;
Ξέρω ότι...
sum = 0
array.each { |a| sum+=a }
θα λειτουργούσε.
Ή δοκιμάστε τον τρόπο Ruby 1.9:
array.inject(0, :+)
Σημείωση: η βασική περίπτωση 0
είναι απαραίτητη, διαφορετικά θα επιστρέφεται nil
σε άδειους πίνακες:
> [].inject(:+)
nil
> [].inject(0, :+)
0
Δοκιμάστε αυτό:
array.inject(0){|sum,x| sum + x }
Βλέπε Ruby's Enumerable Documentation
(σημείωση: η βασική περίπτωση 0
είναι απαραίτητη για να επιστρέφεται το 0
σε έναν άδειο πίνακα αντί για το nil
)
Εναλλακτικά (απλά για σύγκριση), αν έχετε εγκατεστημένο το Rails (στην πραγματικότητα μόνο το ActiveSupport):
require 'activesupport'
array.sum