Простое, но эффективное объяснение наиболее распространенных итераторов в Ruby.
Карта
Итератор карты проходит через все элементы и делает то, что у нас есть внутри блока, с каждым элементом, а затем возвращает новый массив, содержащий элементы, возвращенные блоком.
a = [a, b, c, d] a.map {|item| item + !} ==› a = [a!, b!, c!, d!]
Каждый
Каждый итератор проходит через все элементы и делает то, что у нас есть внутри блока, с каждым элементом, но возвращает исходный массив.
a = [ a, b, c, d] a.each {|item| элемент + !} ==› a = [a, b, c, d]
Выбрать
Итератор выбора проходит по всем элементам и проверяет, верно ли условие в данном блоке, а затем возвращает все эти элементы, для которых условие истинно.
a = [1, 2, 3, 4] a.select { |num| num.even?} ==› a = [2, 4]
Найти
Итератор поиска просматривает все элементы и проверяет, верно ли условие в данном блоке, но возвращает нам первый элемент, где условие истинно.
a= [1, 2, 3, 4] a.find { |num| num.even?} == › a = 2