ExpertiDict

Ruby · Intermediário · Inglês · Técnico

Enumerable

/ɪˈnumərəbəl/substantivo

Módulo que dá dezenas de métodos de coleção, como map, select e reduce, a qualquer classe que defina each. Array, Hash e Range já o incluem.

Onde usar

Ao criar uma coleção própria, basta incluir Enumerable e implementar each para ganhar sort_by, min, group_by e mais. É um dos melhores exemplos do uso de mixins em Ruby.

Em código

class Fila
  include Enumerable
  def initialize(*itens); @itens = itens; end
  def each(&bloco) = @itens.each(&bloco)
end
f = Fila.new(3, 1, 2)
p f.sort, f.map { |n| n * 2 }

Exemplos

Include Enumerable and define each, and you get map for free.

Inclua Enumerable e defina each, e você ganha o map de graça.

Hash and Range both include Enumerable.

Hash e Range incluem Enumerable.

Cuidado

Não confunda com Enumerator: Enumerable é o módulo com os métodos, e Enumerator é o objeto que percorre uma sequência sob demanda.

Veja também

Todos os termos de Ruby