Ir para conteúdo principal
Lucas Caton

JÁ CONHECE MEU NOVO CURSO?

O caminho certo para aprender React

70 videoaulas. Mais de 11 horas de conteúdo. Vários projetos desenvolvidos!

Quero saber mais

Transformando um Array em um Enumerator no Ruby

Lucas Caton

Lucas Caton

@lucascaton
Existem alguns casos em que você precisa modificar um array (aumentá-lo por exemplo) repetindo os valores presentes no array original.
Uma forma bem interessante de fazer isso é convertendo tal array para um objeto Enumerator. Para isso, existe o método Enumerator#cycle. Imagine o seguinte array:
ruby
array = [1, 3, 5, 7]
Ao rodar o método cycle, veja o que acontece:
ruby
array.cycle # => #<Enumerator: [1, 3, 5, 7]:cycle>
Podemos agora usar o método Enumerator#take e modificar o array original como quisermos. Por exemplo, vamos dobrar o seu tamanho:
ruby
array.cycle.take(8) # => [1, 3, 5, 7, 1, 3, 5, 7]
Foi criado um array do tamanho especificado no parametro do método take.
Isso é útil - por exemplo - em casos similares à esse código da gem boleto_bancario. Em algoritmos de IA também é bastante comum precisar desse tipo de modificação em arrays.

Post atualizado em 02/10/2017, 10:00:00