Итераторы — это не что иное, как методы, поддерживаемые коллекциями . Объекты, которые хранят группу элементов данных, называются коллекциями. В Ruby массивы и хэши можно назвать коллекциями.
Итераторы возвращают все элементы коллекции, один за другим. Мы будем обсуждать два итератора здесь, каждый и собирать . Давайте посмотрим на это подробно.
Руби каждый итератор
Каждый итератор возвращает все элементы массива или хеша.
Синтаксис
collection.each do |variable| code end
Выполняет код для каждого элемента в коллекции . Здесь коллекция может быть массивом или хэшем ruby.
пример
#!/usr/bin/ruby ary = [1,2,3,4,5] ary.each do |i| puts i end
Это даст следующий результат —
1 2 3 4 5
Вы всегда связываете каждый итератор с блоком. Он возвращает каждое значение массива, одно за другим, в блок. Значение сохраняется в переменной i и затем отображается на экране.
Ruby собирать итератор
Итератор сбора возвращает все элементы коллекции.
Синтаксис
collection = collection.collect
Метод сбора не всегда должен быть связан с блоком. Метод collect возвращает всю коллекцию независимо от того, является ли она массивом или хэшем.
пример
#!/usr/bin/ruby a = [1,2,3,4,5] b = Array.new b = a.collect puts b
Это даст следующий результат —
1 2 3 4 5
ПРИМЕЧАНИЕ. — Метод сбора данных не является правильным способом копирования между массивами. Существует еще один метод, называемый клоном , который следует использовать для копирования одного массива в другой.
Обычно вы используете метод collect, когда хотите что-то сделать с каждым из значений, чтобы получить новый массив. Например, этот код создает массив b, содержащий 10 раз каждое значение в a .
#!/usr/bin/ruby a = [1,2,3,4,5] b = a.collect{|x| 10*x} puts b
Это даст следующий результат —