0Pricing
Ruby Academy · 강의

case/in 기초

구조적 매칭을 알아봅니다

case/in 기초은(는) CoddyKit의 무료 Ruby Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Ruby Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Ruby Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

패턴 일치 기능의 등장

Ruby의 case/in 표현식은 구조적 패턴 일치를 수행합니다. 단순한 동등성뿐 아니라 데이터의 형태와 내용을 검사합니다. case/when보다 강력하게 개선된 기능입니다.

case 42
in Integer
  puts 'it is an integer'
end

case/in과 case/when 비교

case/when은 ===로 비교합니다(동등성 방식). case/in은 값을 분해하고 변수를 연결할 수 있습니다. 구조를 일치시킬 때는 in을 사용하십시오.

case 'hello'
in String => s
  puts "string of length #{s.length}"
end

리터럴 일치

in 분기는 리터럴 값과 일치시킬 수 있으며, 정확한 동등성 검사처럼 작동합니다.

case 3
in 1 then puts 'one'
in 3 then puts 'three'
in _ then puts 'other'
end

형식 패턴

클래스 이름을 지정하면 해당 형식의 모든 값과 일치하며, 내부적으로 ===를 활용합니다.

def describe(x)
  case x
  in Integer then 'number'
  in String then 'text'
  in Array then 'list'
  end
end
puts(describe([1, 2]))

변수 바인딩

패턴의 단독 식별자는 일치한 값을 새 변수에 연결합니다. 이 변수는 해당 분기에서 사용할 수 있습니다.

case [1, 2]
in [a, b]
  puts(a + b)
end

와일드카드

밑줄 _은 값을 연결하지 않고 무엇이든 일치시킵니다. 모든 경우를 처리하거나 특정 위치를 무시할 때 사용하십시오.

case 99
in 0 then puts 'zero'
in _ then puts 'something else'
end

핀 연산자

새 변수를 연결하는 대신 기존 변수의 값과 일치시키려면 ^로 고정하십시오.
expected = 5
case 5
in ^expected
  puts 'matched the pinned value'
end

대안 패턴

|로 패턴을 결합하면 하나의 분기에서 여러 대안 중 하나와 일치시킬 수 있습니다.

case 'b'
in 'a' | 'b' | 'c'
  puts 'in the first three letters'
end

전체 일치 결과 바인딩

pattern => name을 사용하면 패턴을 검사하는 동시에 일치한 값을 이름에 연결할 수 있습니다.

case 'Ruby'
in String => word
  puts(word.upcase)
end

NoMatchingPatternError

일치하는 in 분기가 없고 else도 없으면 Ruby가 NoMatchingPatternError를 발생시킵니다. 나머지를 안전하게 handle하려면 else를 추가하십시오.

case 10
in 1 then puts 'one'
else
  puts 'no specific match'
end

한 줄 일치

=> 연산자는 한 줄 오른쪽 대입 일치를 수행하며, 실패하면 예외를 발생시킵니다. 반면 in 연산자는 참 또는 거짓을 반환합니다.

result = [1, 2] in [Integer, Integer]
puts result

빠른 확인

case/in에 일치하는 분기도 없고 else도 없으면 어떻게 됩니까?

복습: case/in 기초

구조적 패턴 일치의 기초를 배웠습니다:

  • case/in은 단순한 동등성이 아니라 형태를 기준으로 일치시킵니다
  • 리터럴, 형식 패턴, _ 와일드카드
  • 변수 바인딩과 핀 연산자 ^
  • | 및 pattern => name을 사용한 대안
  • 일치하는 항목이 없으면 NoMatchingPatternError가 발생합니다
case 7
in Integer => n then puts(n * 2)
end

자주 묻는 질문

“case/in 기초” 강의는 무료인가요?

네 — “case/in 기초” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Ruby Academy 강의 전체를 잠금 해제할 수 있습니다. Ruby Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“case/in 기초”에서 뭘 배우나요?

구조적 매칭을 알아봅니다 브라우저에서 직접 실행하는 실습 코드로 Ruby Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Ruby Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Ruby Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“case/in 기초” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Ruby Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Ruby Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. case/in 기초
  2. 배열과 해시 패턴
  3. Find 패턴과 가드
  4. 실전 사용 사례
← Ruby Academy(으)로 돌아가기