Find 패턴과 가드
매칭 안의 조건을 다룹니다
Find 패턴과 가드은(는) CoddyKit의 무료 Ruby Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Ruby Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Ruby Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
가드 조건
패턴에 if 또는 unless 가드를 추가하십시오. 패턴과 조건이 모두 성공할 때만 분기가 일치합니다.
case 7
in Integer => n if n.odd?
puts 'odd integer'
end가드는 연결된 변수를 사용합니다
가드에서는 패턴으로 연결한 변수를 참조할 수 있으므로, 일치한 데이터에 대한 다양한 조건을 표현할 수 있습니다.
case [4, 9]
in [a, b] if a < b
puts 'ascending pair'
endunless 가드
unless 가드는 조건이 거짓일 때 일치하며, if의 반대입니다.
case 0
in Integer => n unless n.positive?
puts 'zero or negative'
end여러 가드 분기
분기마다 가드를 결합하여 명확한 의사 결정 단계를 만들 수 있습니다.
def grade(score)
case score
in Integer => s if s >= 90 then 'A'
in Integer => s if s >= 70 then 'B'
else 'C'
end
end
puts(grade(85))검색 패턴
검색 패턴 [*, x, *]은 양쪽 끝의 스플랫을 사용하여 배열 내부 어디에서든 하위 패턴을 찾습니다.
case [1, 2, 3, 4]
in [*, 3, *]
puts 'contains a 3'
end검색 중 바인딩
검색 패턴에서 일치한 요소를 변수에 연결하여 찾은 값을 가져올 수 있습니다.
case [10, 20, 30]
in [*, x, *] if x > 25
puts("found #{x}")
end주변 요소 가져오기
검색 패턴의 두 스플랫에 모두 이름을 지정하여 일치한 요소의 앞과 뒤에 있는 요소를 가져올 수 있습니다.
case [1, 2, 99, 4, 5]
in [*before, 99, *after]
p before
p after
end형식이 지정된 요소 찾기
검색 패턴을 형식 패턴과 결합하면 지정한 형식의 첫 번째 요소를 찾을 수 있습니다.
case [1, 'hi', 2]
in [*, String => word, *]
puts(word)
end가드와 패턴 비교
패턴에서 구조적으로 표현할 수 있는 것은 패턴으로 표현하고, 패턴으로 담을 수 없는 조건(숫자 비교나 메서드 호출 등)에만 가드를 사용하십시오.
case { role: 'admin', age: 40 }
in { role: 'admin', age: } if age >= 18
puts 'adult admin'
end검색과 가드 결합
검색 패턴과 가드를 함께 사용하면 어떤 요소라도 이 조건을 만족하는지 확인할 수 있습니다.
numbers = [3, 5, 8, 11]
case numbers
in [*, n, *] if n.even?
puts("first even-ish hit: #{n}")
end분기 순서
분기는 위에서 아래 순서로 시도하며, 가장 먼저 일치하는 분기가 선택됩니다. 더 구체적인 가드 패턴을 일반적인 패턴보다 앞에 배치하십시오.
case 100
in Integer => n if n > 50 then puts 'big'
in Integer then puts 'small'
end빠른 확인
검색 패턴 [*, x, *]은 무엇을 합니까?
복습: 검색 패턴과 가드
패턴 일치에 조건과 검색을 추가했습니다:
- 가드
if/unless는 패턴을 더 구체화합니다 - 가드에서 연결된 변수를 사용할 수 있습니다
- 검색 패턴
[*, x, *]은 어디에서든 검색합니다 - 두 스플랫 모두 이름을 지정하여 주변 요소를 가져올 수 있습니다
- 가장 먼저 일치하는 분기가 선택되므로 순서가 중요합니다
case [1, 7, 3]
in [*, x, *] if x > 5 then puts x
end자주 묻는 질문
“Find 패턴과 가드” 강의는 무료인가요?
네 — “Find 패턴과 가드” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Ruby Academy 강의 전체를 잠금 해제할 수 있습니다. Ruby Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“Find 패턴과 가드”에서 뭘 배우나요?
매칭 안의 조건을 다룹니다 브라우저에서 직접 실행하는 실습 코드로 Ruby Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Ruby Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Ruby Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.
“Find 패턴과 가드” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Ruby Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Ruby Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- case/in 기초
- 배열과 해시 패턴
- Find 패턴과 가드
- 실전 사용 사례