Mòdul Enumerable
El mòdul Enumerable
és una de les característiques més potents i útils de Ruby. Proporciona una sèrie de mètodes que permeten treballar amb col·leccions de dades de manera eficient i elegant. Aquest mòdul és inclòs en classes com Array
, Hash
i Range
, entre d'altres.
Objectius d'Aprenentatge
- Comprendre què és el mòdul
Enumerable
i com s'utilitza. - Aprendre els mètodes més comuns del mòdul
Enumerable
. - Aplicar aquests mètodes en exemples pràctics.
Què és el Mòdul Enumerable?
El mòdul Enumerable
inclou mètodes que permeten iterar, buscar, ordenar i manipular col·leccions de dades. Perquè una classe pugui utilitzar Enumerable
, ha d'incloure el mètode each
, que és la base de la majoria dels mètodes d'aquest mòdul.
Mètodes Comuns del Mòdul Enumerable
A continuació, es presenten alguns dels mètodes més utilitzats del mòdul Enumerable
:
each
Itera sobre cada element de la col·lecció.
map
Crea una nova col·lecció aplicant el bloc a cada element de la col·lecció original.
select
Retorna una nova col·lecció amb els elements que compleixen la condició del bloc.
reject
Retorna una nova col·lecció amb els elements que no compleixen la condició del bloc.
reduce
(o inject
)
Combina tots els elements de la col·lecció en un sol valor segons el bloc.
find
Retorna el primer element que compleix la condició del bloc.
all?
Retorna true
si tots els elements compleixen la condició del bloc.
any?
Retorna true
si algun element compleix la condició del bloc.
Exemple Pràctic
Suposem que tenim una llista de persones amb les seves edats i volem trobar les persones majors d'edat (18 anys o més).
people = [ { name: "Anna", age: 17 }, { name: "John", age: 23 }, { name: "Mike", age: 15 }, { name: "Sara", age: 20 } ] adults = people.select { |person| person[:age] >= 18 } puts adults.inspect # [{:name=>"John", :age=>23}, {:name=>"Sara", :age=>20}]
Exercicis Pràctics
-
Filtrar Nombres Parells Escriu un programa que filtri els nombres parells d'una llista donada.
numbers = [10, 15, 20, 25, 30] even_numbers = numbers.select { |num| num.even? } puts even_numbers.inspect
-
Transformar Nombres Escriu un programa que multipliqui cada nombre d'una llista per 3.
numbers = [1, 2, 3, 4, 5] tripled_numbers = numbers.map { |num| num * 3 } puts tripled_numbers.inspect
-
Sumar Nombres Escriu un programa que sumi tots els nombres d'una llista.
numbers = [5, 10, 15, 20] total_sum = numbers.reduce(0) { |acc, num| acc + num } puts total_sum
Solucions
-
Filtrar Nombres Parells
numbers = [10, 15, 20, 25, 30] even_numbers = numbers.select { |num| num.even? } puts even_numbers.inspect # [10, 20, 30]
-
Transformar Nombres
numbers = [1, 2, 3, 4, 5] tripled_numbers = numbers.map { |num| num * 3 } puts tripled_numbers.inspect # [3, 6, 9, 12, 15]
-
Sumar Nombres
numbers = [5, 10, 15, 20] total_sum = numbers.reduce(0) { |acc, num| acc + num } puts total_sum # 50
Conclusió
El mòdul Enumerable
és una eina poderosa que facilita el treball amb col·leccions en Ruby. Els mètodes que proporciona permeten realitzar operacions complexes de manera senzilla i llegible. Practicar amb aquests mètodes és essencial per dominar la manipulació de col·leccions en Ruby.
Curs de Programació en Ruby
Mòdul 1: Introducció a Ruby
Mòdul 2: Conceptes Bàsics de Ruby
Mòdul 3: Treballant amb Col·leccions
Mòdul 4: Programació Orientada a Objectes en Ruby
- Classes i Objectes
- Variables i Mètodes d'Instància
- Variables i Mètodes de Classe
- Herència
- Mòduls i Mixins
Mòdul 5: Conceptes Avançats de Ruby
- Blocs, Procs i Lambdas
- Metaprogramació
- Gestió d'Excepcions
- Entrada/Sortida de Fitxers
- Expressions Regulars
Mòdul 6: Introducció a Ruby on Rails
- Què és Ruby on Rails?
- Configuració de l'Entorn Rails
- Creació d'una Aplicació Simple en Rails
- Arquitectura MVC
- Rutes
Mòdul 7: Proves en Ruby
- Introducció a les Proves
- Proves Unitàries amb Minitest
- Desenvolupament Basat en Comportament amb RSpec
- Mocking i Stubbing
Mòdul 8: Millors Pràctiques en Ruby
- Estil de Codi i Convencions
- Refactorització
- Optimització del Rendiment
- Millors Pràctiques de Seguretat