Разница между Enumerable#each
и Enumerable#map
заключается в том, возвращает ли он приемник или сопоставленный результат. Возврат к получателю тривиален, и вам обычно не нужно продолжать цепочку методов после each
, как each{...}.another_method
(я, вероятно, не видел такого случая. Даже если вы хотите вернуться к получателю, вы можете сделать это с помощью tap
). Поэтому я думаю, что все или большинство случаев, когда используется Enumerable#each
, можно заменить на Enumerable#map
. Я ошибся? Если я прав, какова цель each
? map
медленнее, чем each
?
Изменить: я знаю, что each
принято использовать, когда возвращаемое значение вас не интересует. Меня не интересует, существует ли такая практика, но меня интересует, имеет ли такая практика смысл кроме как с точки зрения условности.
each
является фундаментальной частью Enumerable, аmap
— нет, верно? Класс должен предоставить методeach
, который возвращает последовательные элементы коллекции. а>. - person mu is too short   schedule 30.09.2012map
с точки зренияeach
, а затемeach
с точки зренияmap
, это может дать вам некоторое представление. - person mu is too short   schedule 30.09.2012