Ruby Итераторы

Проще говоря: итерация означает повторение одного и того же, поэтому итератор используется для многократного повторения одного и того же.

Итераторы — это методы, поддерживаемыеколлекциями. Объекты, которые хранят группу элементов данных, называются коллекциями. В Ruby массивы и хеши можно назвать коллекциями.

Итераторы возвращают все элементы коллекции один за другим. Здесь мы рассмотрим два итератора,eachиcollect。

Ruby eachИтераторы

Итератор each возвращает все элементы массива или хеша.

Синтаксис

collection.each do |variable| code end

являетсяколлекциейкаждый элемент в коллекции выполняеткод. Здесь коллекция может быть массивом или хешем.

Примеры

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

Попробуйте »

Вывод приведенного выше примера:

1
2
3
4
5

eachИтератор всегда связан с блоком. Он возвращает каждое значение массива блоку, одно за другим. Значение сохраняется в переменнойiи затем отображается на экране.

Ruby collectИтераторы

collectИтератор возвращает все элементы коллекции.

Синтаксис

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. Например, следующий код генерирует массив, значения которого в 10 раз больше каждого значения в a.

Примеры

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

Попробуйте »

Вывод приведенного выше примера:

10
20
30
40
50
Другие расширения