Поиск по сайту:
Революции нужны, чтобы уничтожать революционеров (М. Горький).

Ruby – Итераторы

[wtr-time]
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
17.08.2018
Как написать первую программу на Ruby

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

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

Ruby. Итератор each

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

Синтаксис

collection.each do |variable|
   code
end

 

Выполняет code для каждого элемента в collection. Здесь collection может быть массивом или ruby хешем.

Пример

#!/usr/bin/ruby

ary = [6,7,8,9,10]
ary.each do |i|
   puts i
end

 

Это приведет к следующему результату:

6
7
8
9
10

 

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

Ruby. Итератор collect

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

Синтаксис

collection = collection.collect

 

Метод collect не обязательно должен быть связан с блоком. Метод collect возвращает всю коллекцию, независимо от того, массив или хэш.

Пример

#!/usr/bin/ruby

a = [6,7,8,9,10]
b = Array.new
b = a.collect
puts b

 

Это приведет к следующему результату:

6
7
8
9
10

 

Совет
Метод collect не подходит для копирования между массивами. Существует еще один метод, называемый clone, который должен использоваться для копирования одного массива в другой массив.

Обычно вы используете метод collect, когда хотите что-то сделать с каждым из значений, чтобы получить новый массив. Например, этот код создает массив b, содержащий 10 раз каждое значение в a.

#!/usr/bin/ruby

a = [6,7,8,9,10]
b = a.collect{|x| 10*x}
puts b

 

Это приведет к следующему результату:

60
70
80
90
100

 

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Если статья понравилась, то поделитесь ей в социальных сетях:

Читайте также

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Спасибо!

Теперь редакторы в курсе.