Menu
Coddy logo textTech

Map 체이닝

Coddy Ruby 여정의 로직 및 흐름 섹션에 포함된 레슨 — 56개 중 22번째.

기초 과정에서 map을 만나보셨을 것입니다. 이는 각 요소를 변환하여 새로운 배열을 생성합니다. select, reject 등과 함께 연결하여 사용할 때 진정한 위력이 발휘됩니다.

각 메서드는 배열을 반환하므로, 결과에 대해 다른 메서드를 호출하는 것을 계속 이어갈 수 있습니다:

numbers = [1, 2, 3, 4, 5]
result = numbers
  .select { |n| n.odd? }
  .map    { |n| n * 10 }
puts result.inspect   # [10, 30, 50]

체인을 위에서 아래로 읽으세요: 숫자로 시작하고, 홀수만 남기고, 각각에 10을 곱합니다. 임시 변수나 루프(loop)는 사용하지 않습니다.

&:method_name 단축형은 블록이 단 하나의 메서드만 호출할 때마다 작동합니다:

["hi", "yo"].map { |s| s.upcase }   # ["HI", "YO"]
["hi", "yo"].map(&:upcase)         # ["HI", "YO"]  (동일함)

이 단축 표기법은 Ruby 코드 어디에서나 볼 수 있습니다. 나중에 보게 되면 알아볼 수 있도록 하세요.

challenge icon

챌린지

쉬움

콤마로 구분된 단어 목록을 읽습니다. 3글자보다 긴 단어들을 대문자로 변환하고, , 로 연결하여 한 줄에 출력하세요.

하나의 체인으로 작성하세요: 긴 단어들을 select하고, &:upcase를 사용하여 map한 다음, join합니다.

입력 hi,hello,yo,coddy,sup에 대한 출력은 다음과 같습니다:

HELLO, CODDY

치트 시트

배열 메서드 체이닝 — 각 메서드는 새 배열을 반환하므로, 결과에 대해 계속해서 메서드를 호출할 수 있습니다:

numbers = [1, 2, 3, 4, 5]
result = numbers
  .select { |n| n.odd? }
  .map    { |n| n * 10 }
# [10, 30, 50]

블록이 단 하나의 메서드만 호출할 때는 &:method_name을 단축형으로 사용하세요:

["hi", "yo"].map(&:upcase)   # ["HI", "YO"]

직접 해보기

words = gets.chomp.split(",")

# TODO: select + map(&:upcase) + join 연결하기
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

로직 및 흐름의 모든 레슨