Чем отличается энумератор map от each?

Этот вопрос проверяет знание двух популярных методов перебора коллекций в Ruby и их различных целей.

Короткий ответ

each проходит по каждому элементу коллекции и выполняет заданное действие, но ничего не возвращает. map создаёт новую коллекцию, преобразовывая каждый элемент по заданному правилу.

Длинный ответ

each:
Метод each перебирает элементы коллекции (массив, хэш и т.д.), передавая их в блок. Он возвращает оригинальную коллекцию, а не результат работы блока:

[1, 2, 3].each { |num| puts num }  # Выводит 1, 2, 3  
# Возвращает [1, 2, 3]  

 

map:
Метод map используется для преобразования коллекции. Он применяет блок к каждому элементу и возвращает новый массив с результатами:

doubled = [1, 2, 3].map { |num| num * 2 }  
puts doubled  # => [2, 4, 6]  

Если вам нужно преобразовать коллекцию, map предпочтительнее, так как он возвращает новую коллекцию.

 

Ключевое различие: each применяется, когда вы просто хотите выполнить действие для каждого элемента, а map — когда нужно создать новую коллекцию.

 

Используйте each для операций без изменений коллекции, а map — для преобразования данных

Уровень

  • Рейтинг:

    3

  • Сложность:

    4

Навыки

  • Ruby

Ключевые слова

Подпишись на Ruby Developer в телеграм