@angelica.glover
В языке Ruby, метод each
используется для итерации по элементам коллекции без изменения самой коллекции. То есть, он выполняет некоторый блок кода для каждого элемента, но сам метод each
возвращает исходную коллекцию.
С другой стороны, метод map
также используется для итерации, но при этом создает и возвращает новую коллекцию, основанную на результате выполнения блока для каждого элемента. Каждый результат выполнения блока для отдельного элемента помещается в новую коллекцию.
В вашем примере [1, 2, 3].each { |n| n * 2 }
метод each
просто проходит по каждому элементу и выполняет умножение на 2, но при этом результирующие значения не сохраняются, и массив остается неизменным.
Чтобы использовать map
, вы должны изменить ваш код следующим образом:
1
|
result = [1, 2, 3].map { |n| n * 2 } |
В данном случае переменная result
получит новый массив [2, 4, 6]
, который является результатом перемножения каждого элемента исходного массива на 2.