Ruby - Iteradores
Os iteradores nada mais são do que métodos suportados por coleções . Os objetos que armazenam um grupo de membros de dados são chamados de coleções. Em Ruby, arrays e hashes podem ser chamados de coleções.
Os iteradores retornam todos os elementos de uma coleção, um após o outro. Estaremos discutindo dois iteradores aqui, each e collect . Vamos examinar isso em detalhes.
Ruby cada Iterator
Cada iterador retorna todos os elementos de uma matriz ou hash.
Sintaxe
collection.each do |variable|
code
end
Executa código para cada elemento da coleção . Aqui, a coleção pode ser um array ou um hash ruby.
Exemplo
#!/usr/bin/ruby
ary = [1,2,3,4,5]
ary.each do |i|
puts i
end
Isso produzirá o seguinte resultado -
1
2
3
4
5
Você sempre associa cada iterador a um bloco. Ele retorna cada valor da matriz, um por um, para o bloco. O valor é armazenado na variáveli e então exibido na tela.
Ruby collect Iterator
O iterador collect retorna todos os elementos de uma coleção.
Sintaxe
collection = collection.collect
O método de coleta nem sempre precisa estar associado a um bloco. O método collect retorna a coleção inteira, independentemente de ser uma matriz ou um hash.
Exemplo
#!/usr/bin/ruby
a = [1,2,3,4,5]
b = Array.new
b = a.collect
puts b
Isso produzirá o seguinte resultado -
1
2
3
4
5
NOTE- O método de coleta não é a maneira correta de copiar entre matrizes. Existe outro método chamado clone , que deve ser usado para copiar um array em outro array.
Normalmente, você usa o método collect quando deseja fazer algo com cada um dos valores para obter a nova matriz. Por exemplo, este código produz uma matriz b contendo 10 vezes cada valor em a .
#!/usr/bin/ruby
a = [1,2,3,4,5]
b = a.collect{|x| 10*x}
puts b
Isso produzirá o seguinte resultado -
10
20
30
40
50