В чем разница между 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!
определенArray
s; они изменяют приемник на месте: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]"