부작용은 당신의 리버스 엔지니어링에 약간의 혼동을 추가하는 동일합니다.
예, 둘 다 배열을 반복 하지만 (실제로 Enumerable 에서 혼합되는 모든 항목에 대해 ) map 은 블록 결과로 구성된 배열을 반환하고 각각 은 원래 배열을 반환합니다.
각각 의 반환 값은 원래 배열이며 Ruby 코드에서는 거의 사용되지 않지만 map 은 가장 중요한 기능 도구 중 하나입니다 .
map
전달되는 블록 또는 명명 된 메서드의 결과를 포함하는 배열을 반환하는 것이 무엇입니까? 예를 들면 :
2.2.3 :001 > [:how, :now, :brown, :cow].map &:to_s
=> ["how", "now", "brown", "cow"]
이 경우에 나는 블록을 전달하지 않고 단지를 전달 Symbol
했지만 class Symbol
객체는 다음과 같은 to_proc
결과를 가져올 메서드를 가지고 있습니다.
[:how.to_s, :now.to_s, ...]
BTW, map 은 Enumerable 의 메서드 이고 각각 ( Enumerable 모듈에서 필요한 하나의 메서드 )은 Array 의 메서드 이기 때문에 문서를 찾는 데 어려움을 겪을 수 있습니다 .
퀴즈 참고 : 지도 구현은 각 .