2012-02-24 1 views

답변

107

each이 (가) 동일 mapcollect하지만 mapcollect 다른 (기술적 mapcollect의 별칭입니다,하지만 내 경험 map 더 자주 많이 사용된다).

:

[1,2,3,4].each {|n| puts n*2} 
# Outputs: 
# 2 
# 4 
# 6 
# 8 

mapcollect 수신기의 각 요소에 적용되는 블록의 결과를 포함하는 새로운 Array 생산 :

each은 (Enumerable) 수신기의 각 요소에 대하여 첨부 된 블록을 수행

[1,2,3,4].map {|n| n*2} 
# => [2,4,6,8] 

에 정의 된 map!/collect!도 있습니다. 그들은 장소에 수신기를 수정

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]" 
+2

map은 커뮤니티에서 선택한 버전입니다. https://github.com/bbatsov/ruby-style-guide#map-fine-select-reduce-size –

21

Each 블록을 평가하지만 Each 블록의 평가 결과를 멀리 던져 원래의 배열을 반환합니다.

irb(main):> [1,2,3].each {|x| x*2} 
=> [1, 2, 3] 

Map/collect 창 배열의 각 항목에 대한 블록이 호출의 결과로 구성된 어레이.

irb(main):> [1,2,3].collect {|x| x*2} 
=> [2, 4, 6] 
관련 문제