O módulo Enumerable
Recursos compartilhados para coleções.
O módulo Enumerable é uma aula grátis de Ruby Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Ruby Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Ruby Academy inclui 4 aulas no total.
O que é Enumerable?
Enumerable é um módulo que fornece a coleções como vetores, tabelas de dispersão e intervalos um conjunto compartilhado de métodos poderosos. Qualquer classe que tenha each pode incluí-lo.
puts [1, 2, 3].is_a?(Enumerable)
puts (1..3).is_a?(Enumerable)include? e member?
include? verifica se uma coleção contém um valor.
nums = [10, 20, 30]
puts nums.include?(20)
puts (1..5).include?(3)Contagem
count retorna o tamanho ou, com um bloco, conta os elementos correspondentes.
nums = [1, 2, 3, 4]
puts nums.count
puts nums.count { |n| n.even? }mínimo, máximo e mínimo-máximo
Encontre os extremos com min, max ou ambos de uma só vez com minmax.
nums = [4, 1, 7, 3]
puts nums.min
puts nums.max
puts nums.minmax.inspectsum
sum soma todos os elementos. Você pode fornecer um valor inicial.
puts [1, 2, 3].sum
puts [1, 2, 3].sum(100)Ordenação e ordenação por chave
sort ordena os elementos; sort_by ordena usando uma chave calculada.
words = ["pear", "a", "fig"]
puts words.sort.inspect
puts words.sort_by { |w| w.length }.inspectany? e all?
any? é verdadeiro se pelo menos um elemento corresponder; all? é verdadeiro somente se todos os elementos corresponderem.
nums = [2, 4, 6]
puts nums.all? { |n| n.even? }
puts nums.any? { |n| n > 5 }none? e find
none? é verdadeiro se nada corresponder. find (o alias detect) retorna a primeira correspondência.
nums = [1, 3, 5]
puts nums.none? { |n| n.even? }
puts nums.find { |n| n > 2 }first e take
first obtém o primeiro elemento ou os primeiros elementos; take obtém uma quantidade a partir do início e drop os ignora.
nums = [10, 20, 30, 40]
puts nums.first(2).inspect
puts nums.drop(2).inspectAgrupamento por chave
group_by cria uma tabela de dispersão que agrupa os elementos pelo resultado do bloco.
nums = [1, 2, 3, 4, 5]
groups = nums.group_by { |n| n.even? ? :even : :odd }
puts groupsPercorrendo com índice
each_with_index fornece tanto o elemento quanto a sua posição.
%w[a b c].each_with_index do |item, i|
puts "#{i}: #{item}"
endVerificação rápida
Verifique seus conhecimentos sobre Enumerable.
Recapitulação
Enumerable dá superpoderes às coleções:
include?,count,min/max,sumsort/sort_by,any?/all?/none?find,first/take/dropgroup_by,each_with_index
A seguir: map, select e rejeição em detalhes.
puts [3, 1, 2].sort.inspectPerguntas Frequentes
A aula “O módulo Enumerable” é grátis?
Sim — o texto completo de “O módulo Enumerable” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Ruby Academy, atualize para CoddyKit PRO. O curso de Ruby Academy inclui 4 aulas no total.
O que vou aprender em “O módulo Enumerable”?
Recursos compartilhados para coleções. Você pratica Ruby Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Ruby Academy?
Nenhuma experiência prévia é necessária. Ruby Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “O módulo Enumerable”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Ruby Academy?
Sim. Cada aula de Ruby Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Criando intervalos
- O módulo Enumerable
- map, select, reject
- reduce e each_with_object