English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

迭代器 Ruby

In sintesi: iterare (iterate) significa fare la stessa cosa più volte, quindi l'iteratore (iterator) è quello che si ripete più volte.

iteratore èraccoltametodi supportati. Gli oggetti che memorizzano un insieme di membri di dati si chiamano raccolte. In Ruby, gli array (Array) e gli hash (Hash) possono essere chiamati raccolte.

l'iteratore restituisce tutti gli elementi della raccolta, uno alla volta. In questo articolo discuteremo due tipi di iteratori,each e collect.

Ruby each iteratore

l'iteratore each restituisce tutti gli elementi dell'array o hash.

sintassi

collection.each do |variable|
   code
fine

perraccoltaogni elemento esegue code. Qui, la raccolta può essere un array o un hash.

示例在线

#!/usr/bin/ruby
 
ary = [1,2,3,4,5]
ary.each do |i|
   puts i
fine

以上示例运行输出结果为:

1
2
3
4
5

each L'iteratore è sempre associato a un blocco. Restituisce un valore dell'array al blocco, uno alla volta. I valori vengono memorizzati nella variabile i quindi visualizzato sullo schermo.

Ruby collect iteratore

collect l'iteratore restituisce tutti gli elementi della raccolta.

sintassi

collection = collection.collect

collect 方法不需要总是与一个块关联。collect 方法返回整个集合,不管它是数组或者是哈希。

示例在线

示例在线

#!/usr/bin/ruby
 
a = [1,2,3,4,5]
b = Array.new
b = a.collect{ |x|x }
puts b

以上示例运行输出结果为:

1
2
3
4
5

注意collect 方法不是数组间进行复制的正确方式。这里有另一个称为 clone 的方法,用于复制一个数组到另一个数组。

当您想要对每个值进行一些操作以便获得新的数组时,您通常使用 collect 方法。例如,下面的代码会生成一个数组,其值是 a 中每个值的 10 倍。

示例在线

#!/usr/bin/ruby
 
a = [1,2,3,4,5]
b = a.collect{|x| 10*x}
puts b

以上示例运行输出结果为:

10
20
30
40
50