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

Iterateurs Ruby

简单来说:迭代(iterate)指的是重复做相同的事,所以迭代器(iterator)就是用来重复多次相同的事。

迭代器是集合支持的方法。存储一组数据成员的对象称为集合。在 Ruby 中,数组(Array)和哈希(Hash)可以称之为集合。

迭代器返回集合的所有元素,一个接着一个。在这里我们将讨论两种迭代器,eachcollect

Ruby each Itérateurs

each 迭代器返回数组或哈希的所有元素。

Syntaxe

collection.each do |variable|
   code
end

集合中的每个元素执行 code。在这里,集合可以是数组或哈希。

Exemple en ligne

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

Les résultats de l'exemple ci-dessus sont les suivants :

1
2
3
4
5

each 迭代器总是与一个块关联。它向块返回数组的每个值,一个接着一个。值被存储在变量 i 中,然后显示在屏幕上。

Ruby collect Itérateurs

collect Les itérateurs retournent tous les éléments du jeu.

Syntaxe

collection = collection.collect

collect La méthode n'a pas toujours besoin d'être associée à un bloc.collect La méthode retourne l'ensemble entier, que ce soit un tableau ou un hash.

Exemple en ligne

Exemple en ligne

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

Les résultats de l'exemple ci-dessus sont les suivants :

1
2
3
4
5

Remarque:collect La méthode n'est pas la bonne manière de copier entre tableaux. clone La méthode, utilisée pour copier un tableau dans un autre tableau.

Lorsque vous souhaitez effectuer une certaine opération sur chaque valeur pour obtenir un nouveau tableau, vous utilisez généralement la méthode collect. Par exemple, le code suivant génère un tableau whose values are each value of a 10 multiples.

Exemple en ligne

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

Les résultats de l'exemple ci-dessus sont les suivants :

10
20
30
40
50