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'
endcase/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)
endNoMatchingPatternError
일치하는 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 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- case/in 기초
- 배열과 해시 패턴
- Find 패턴과 가드
- 실전 사용 사례