English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Простыми словами: итерация (iterate) означает повторение одного и того же действия, поэтому итератор (iterator) это то, что используется для повторения одного и того же действия несколько раз.
Итератор этоколлекцияподдерживаемые методы. Объект, хранящий группу данных, называется коллекцией. В Ruby массив (Array) и хэш (Hash) можно назвать коллекцией.
Итератор возвращает все элементы集合а, по одному. В этой статье мы рассмотрим два типа итераторов,each и collect.
Итератор each возвращает все элементы массива или хэша.
collection.each do |variable| код конец
дляколлекциядля каждого элемента выполняется код. Здесь,集合 может быть массивом или хэшом.
#!/usr/bin/ruby ary = [1,2,3,4,5] ary.each do |i| puts i конец
Результат выполнения примера выше:
1 2 3 4 5
each Итератор всегда связан с блоком. Он возвращает каждому значению массива по порядку. Значения хранятся в переменной i затем выводится на экран.
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