Metodele inject și reduce sunt sinonime și combină toate elementele unei colecții prin aplicarea unei operațiuni binare specificate printr-un bloc sau simbol de operator.
numere = [1, 2, 3, 4, 5]
# 1. Sumă rapidă folosind simbolul operatorului:
suma = numere.reduce(:+) # 15
# 2. Produs cu valoare inițială:
produs = numere.inject(1) { |acumulator, n| acumulator * n } # 120
# 3. Construirea unui Hash agregat pornind de la o listă:
cuvinte = ["mar", "para", "mar", "banana", "mar"]
frecvente = cuvinte.inject(Hash.new(0)) do |h, fruct|
h[fruct] += 1
h
end
# Rezultat: {"mar"=>3, "para"=>1, "banana"=>1}
Atenție la valoarea de retur: În interiorul blocului, ultima expresie evaluată devine noul acumulator pentru iterația următoare.
Întrebări & Exemple de Cod:
Enumerable#inject și reduce în Ruby: Acumulare Avansată de ValoriAi o nelămurire despre utilizarea comenzii
Enumerable#inject și reduce în Ruby: Acumulare Avansată de Valorisau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.