Простое, но эффективное объяснение наиболее распространенных итераторов в 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