match 표현식
형태에 따라 분기합니다
match 표현식은(는) CoddyKit의 무료 Scala for Backend Engineering & Functional Programming 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Scala for Backend Engineering & Functional Programming 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Scala for Backend Engineering & Functional Programming 강의에는 총 4개의 강의가 포함되어 있습니다.
match란?
match는 Scala의 강력한 분기 구문입니다. 값 하나와 여러 case 패턴을 지정하면, 일치하는 첫 번째 분기를 실행합니다.
더 강력하고 표현식 기반인 switch 문이라고 생각하시면 됩니다.
기본 문법
value match { case pattern => result }와 같이 작성합니다. 각 case는 패턴과 패턴이 일치할 때 실행할 코드를 정의합니다.
match는 표현식이므로 전체 결과가 값을 반환합니다.
object Main {
def main(args: Array[String]): Unit = {
val n = 2
val word = n match {
case 1 => "one"
case 2 => "two"
case 3 => "three"
}
println(word)
}
}와일드카드 케이스
밑줄 _은 무엇이든 일치하는 와일드카드입니다. 마지막에 모든 경우를 처리하는 기본값으로 사용합니다.
와일드카드가 없으면 일치하지 않는 값이 실행 중에 MatchError를 발생시킵니다.
object Main {
def main(args: Array[String]): Unit = {
val n = 9
val word = n match {
case 1 => "one"
case 2 => "two"
case _ => "many"
}
println(word)
}
}문자열 일치시키기
패턴은 숫자에만 사용할 수 있는 것이 아닙니다. 문자열 리터럴과 직접 일치시킬 수도 있습니다.
object Main {
def main(args: Array[String]): Unit = {
val cmd = "start"
val msg = cmd match {
case "start" => "Starting up"
case "stop" => "Shutting down"
case _ => "Unknown command"
}
println(msg)
}
}match는 값을 반환합니다
각 분기가 값을 생성하므로 match의 결과를 val에 할당하거나 코드 안에서 바로 사용할 수 있습니다.
이렇게 하면 코드가 깔끔해지고 변경 가능한 변수를 사용하지 않아도 됩니다.
object Main {
def main(args: Array[String]): Unit = {
val light = "red"
println(s"Action: " + (light match {
case "red" => "stop"
case "green" => "go"
case _ => "caution"
}))
}
}케이스 결합하기
|(파이프)를 사용하면 하나의 케이스에서 여러 값과 일치시킬 수 있습니다. 나열된 모든 값이 같은 분기로 이어집니다.
object Main {
def main(args: Array[String]): Unit = {
val day = "Sat"
val kind = day match {
case "Sat" | "Sun" => "weekend"
case _ => "weekday"
}
println(kind)
}
}함수에서 match 사용하기
함수 본문 전체를 하나의 match 표현식으로 작성하는 방식이 자주 사용됩니다. 일치한 결과가 반환값이 됩니다.
object Main {
def describe(n: Int): String = n match {
case 0 => "zero"
case 1 => "one"
case _ => "other"
}
def main(args: Array[String]): Unit = {
println(describe(0))
println(describe(5))
}
}전체 값 바인딩하기
case other =>를 사용하면 와일드카드 케이스에서 일치한 값을 이름에 바인딩할 수 있습니다. 그러면 해당 분기에서 other를 사용할 수 있습니다.
object Main {
def main(args: Array[String]): Unit = {
val n = 42
val result = n match {
case 0 => "nothing"
case other => s"got $other"
}
println(result)
}
}순서가 중요합니다
케이스는 위에서 아래로 검사되며, 첫 번째로 일치하는 케이스가 선택됩니다. 더 구체적인 패턴을 일반적인 패턴보다 앞에 배치하세요.
와일드카드를 너무 앞에 배치하면 그 아래의 케이스가 가려집니다.
object Main {
def main(args: Array[String]): Unit = {
val n = 1
val msg = n match {
case 1 => "specific one"
case _ => "anything else"
}
println(msg)
}
}match를 사용하는 이유
패턴 일치는 다음과 같은 이유로 Scala의 핵심 기능입니다.
- 여러 갈래의 분기를 명확하게 읽을 수 있습니다
- 표현식으로서 값을 반환합니다
- 형식, 데이터 구조, 가드로 확장할 수 있습니다
- 컴파일러가 모든 경우를 빠짐없이 처리했는지 확인할 수 있습니다
종합하기
리터럴, 결합한 케이스, 기본값을 사용하는 간단한 분류기입니다.
object Main {
def grade(score: Int): String = score match {
case 10 | 9 => "excellent"
case 8 | 7 => "good"
case _ => "keep trying"
}
def main(args: Array[String]): Unit = {
println(grade(9))
println(grade(7))
println(grade(3))
}
}빠른 확인
match 표현식에 대한 이해도를 확인해 보세요.
복습
match의 기본 사항을 배웠습니다.
- 문법은
value match { case pattern => result }입니다 _는 모든 경우를 처리하는 와일드카드입니다|로 여러 값을 결합합니다match는 값을 반환하는 표현식입니다- 케이스는 위에서 아래로 시도되며, 첫 번째 일치가 선택됩니다
AI 튜터와 함께 Scala을(를) 배우세요 — 무료
브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.
- 코스
- 39
- 레슨
- 143
자주 묻는 질문
“match 표현식” 강의는 무료인가요?
네 — “match 표현식” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Scala for Backend Engineering & Functional Programming 강의 전체를 잠금 해제할 수 있습니다. Scala for Backend Engineering & Functional Programming 강의에는 총 4개의 강의가 포함되어 있습니다.
“match 표현식”에서 뭘 배우나요?
형태에 따라 분기합니다 브라우저에서 직접 실행하는 실습 코드로 Scala for Backend Engineering & Functional Programming을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Scala for Backend Engineering & Functional Programming을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Scala for Backend Engineering & Functional Programming은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.
“match 표현식” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Scala for Backend Engineering & Functional Programming 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Scala for Backend Engineering & Functional Programming 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.