В чем разница между map, each и collect? [дубликат]
этот вопрос уже есть ответ здесь:
в Ruby, есть ли разница между функциональными возможностями each,map и collect?
2 ответа:
eachотличается отmapиcollect, аmapиcollectто же самое (техническиmapпсевдонимcollect, но по моему опытуmapиспользуется гораздо чаще).
eachвыполняет закрытый блок для каждого элемента (Enumerable) получатель:[1,2,3,4].each {|n| puts n*2} # Outputs: # 2 # 4 # 6 # 8
mapиcollectсоздать новыйArrayсодержащий результаты блока применяется к каждому элементу приемник:[1,2,3,4].map {|n| n*2} # => [2,4,6,8]там же
map!/collect!определенArrays; они изменяют приемник на месте:a = [1,2,3,4] a.map {|n| n*2} # => [2,4,6,8] puts a.inspect # prints: "[1,2,3,4]" a.map! {|n| n+1} puts a.inspect # prints: "[2,3,4,5]"