Modulul Enumerable este unul dintre cele mai admirate componente ale limbajului Ruby. Orice clasă care implementează metoda each primește automat zeci de metode funcționale de căutare, filtrare, transformare și agregare.
Pipeline de transformare a unei colecții în Ruby
note_elevi = [4, 7, 10, 5, 3, 8, 9, 6]
# 1. Filtrare cu select (păstrează doar notele de trecere):
note_promovate = note_elevi.select { |nota| nota >= 5 }
puts "Note promovate: #{note_promovate.inspect}" # [7, 10, 5, 8, 9, 6]
# 2. Respingere cu reject (elimină notele mari):
note_mici = note_elevi.reject { |nota| nota >= 5 }
puts "Note sub 5: #{note_mici.inspect}" # [4, 3]
# 3. Transformare cu map (crește fiecare notă cu 1 punct, max 10):
note_ajustate = note_elevi.map { |nota| [nota + 1, 10].min }
puts "Note ajustate: #{note_ajustate.inspect}"
# 4. Scurtătura Symbol#to_proc (&:nume_metoda):
cuvinte = ["bucuresti", "cluj", "iasi", "timisoara"]
orase_mari = cuvinte.map(&:capitalize)
puts "Orașe capitalizate: #{orase_mari.join(', ')}"
# 5. Agregare totală cu reduce (inject):
suma_totala = note_elevi.reduce(0) { |total, n| total + n }
puts "Suma notelor: #{suma_totala}"
Întrebări & Exemple de Cod:
Iteratori și Modulul Enumerable în Ruby: each, map, select, reject și reduceAi o nelămurire despre utilizarea comenzii
Iteratori și Modulul Enumerable în Ruby: each, map, select, reject și reducesau 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.