Map은 Arrays, Hashes &Ranges와 함께 사용할 수 있는 Ruby 메서드입니다.
지도의 주요 용도는 데이터를 변환하는 것입니다.
예를 들어 :
문자열 배열이 주어지면 모든 문자열을 살펴보고 모든 문자를 대문자로 만들 수 있습니다.
또는 User
목록이 있는 경우 개체...
변환할 수 있습니다. 해당 이메일 주소, 전화번호 또는 기타 속성 목록에 추가 User
에 정의됨 수업.
정확히 어떻게 하는지 봅시다!
루비 맵 구문
map 구문은 다음과 같습니다.
array = ["a", "b", "c"] array.map { |string| string.upcase } # ["A", "B", "C"]
먼저 배열이 있지만 해시 또는 범위일 수도 있습니다.
그런 다음 map
을 호출합니다. 블록으로.
블록은 대괄호 { ... }
사이에 있는 것입니다. . 블록 내에서 배열의 모든 요소를 변환하는 방법을 말합니다. 기본적으로 기능입니다.
map
을 호출한 후 일어나는 일 ?
지도는 새 배열을 반환합니다. 결과와 함께.
원본은 변경되지 않습니다.
원래 배열을 변경하려면 map!
을 사용할 수 있습니다. .
루비 맵의 예
다음은 유용할 수 있는 몇 가지 예입니다.
숫자 2배 :
array = [1,2,3] array.map { |n| n * 2 } # [2, 4, 6]
문자열을 정수로 변환 :
array = ["11", "21", "5"] array.map { |str| str.to_i } # [11, 21, 5]
해시 값을 기호로 변환 :
hash = { bacon: "protein", apple: "fruit" } hash.map { |k,v| [k, v.to_sym] }.to_h # {:bacon=>:protein, :apple=>:fruit}
이 해시 예제 정보:
해시 요소가 키와 값으로 구성되어 있기 때문에 하나가 아닌 두 개의 인수가 있음을 알 수 있습니다.
그런 다음 변환된 키와 값이 포함된 새 배열을 반환합니다.
마지막 단계는 이것을 다시 해시로 변환하는 것입니다.
루비 지도 대 각각
지도와 각각의 차이점은 무엇인가요?
각각은 더 원시적인 버전의 지도와 같습니다. …
작업할 수 있도록 모든 요소를 제공하지만 결과를 수집하지는 않습니다.
각 항상 변경되지 않은 원래 개체를 반환 .
지도는 동일한 작업을 수행하지만...
변환된 요소가 있는 새 배열을 반환합니다.
예 :
array.each { |n| n * 2 } # [1, 2, 3] array.map { |n| n * 2 } # [2, 4, 6]
루비 지도 대 수집
지도와 수집은 완전히 같은 방법입니다.
같은 물건에 다른 이름입니다!
어떤 것을 사용해야 하나요?
오픈 소스 프로젝트를 읽으면 가장 일반적인 버전이 map
임을 알 수 있습니다. .
그것을 사용하십시오.
색인과 함께 지도를 사용하는 방법
값이 포함된 색인이 필요한 경우 with_index
를 사용할 수 있습니다. 방법.
예시 :
array = %w(a b c) array.map.with_index { |ch, idx| [ch, idx] } # [["a", 0], ["b", 1], ["c", 2]]
보너스 팁 :
with_index
에 매개변수를 전달할 수 있습니다. 인덱스 0에서 시작하지 않으려면
루비 지도 속기(지도 및)
map
의 축약형 버전을 사용할 수 있습니다. 인수가 필요 없는 메서드를 호출할 때 .
예 :
["11", "21", "5"].map(&:to_i)
예 :
["orange", "apple", "banana"].map(&:class)
이 &구문은 map
에 국한되지 않습니다. , 다른 열거 가능한 메서드와 함께 사용할 수도 있습니다.
지도 방법 마인드맵
동영상 튜토리얼
요약
Ruby 맵 방법과 사용 방법에 대해 배웠습니다! 또한 각각, 지도 및 수집의 차이점에 대해서도 배웠습니다.
이 기사가 마음에 드시면 Ruby 친구들과 공유해 주세요 🙂
읽어주셔서 감사합니다!