English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
l'iteratore each restituisce tutti gli elementi dell'array o hash.
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.
collect l'iteratore restituisce tutti gli elementi della raccolta.
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