티스토리 뷰
개요
scala는 특정 패턴을 검사할 수 있는 패턴 매칭 문법을 제공한다. 패턴 매칭이란 어떤 변수 또는 조건식이 만족하는 경우의 수에 따라 다르게 동작하도록 하는 것을 말한다.
match는 C++의 switch와 비슷하지만 훨씬 강력한 기능을 제공하며 이를 통해 더 추상적고 간결한 코드를 작성할 수 있다.
match
기본적인 match문법의 구조는 다음과 같다.
[matching object] match { case [case] => [do code] case [case 2] => [do code] ... }
scala는 위 문장에서 match object에 대해 일치하는 case를 순서대로 검사하다가 조건에 맞는 case를 만나면 해당 코드를 실행하고 match문을 탈출한다.
case로 검사할 수 있는 방법이 무궁무진하다는 것이 match문의 최대 장점이라고 할 수 있다. 기본적으로 특정 값이나 조건식으로 검사할 수 있다.
def func(v: Int) = { |
case에 자료형을 넣어서 검사하려는 값이 어떤 자료형인지도 검사할 수 있다. 이 때 검사할 자료형은 Any여야 한다.
def printSize(v: Any) = { |
collection을 검사할 경우 collection을 필요한 특징에 맞게 검사하여 동작하게 할 수 있다.
def func(c: List[Any]) = { |
마치며
패턴매칭을 사용해서 자료형에 따라 달라지는 표현들을 하나의 표현으로 묶어서 표현할 수도 있고, collection에서 특징을 가지는 collection들을 처리하는 코드를 작성할 수도 있다. 더 깊게 공부하면 할 수록 가장 자주 사용하게 될 문법인 것 같다.
'Programming > Language' 카테고리의 다른 글
C# Tutorial | 기본 문법 (0) | 2018.10.29 |
---|---|
Python Tutorial | 기본 문법 (0) | 2018.09.17 |
스칼라(scala) - 함수 (0) | 2017.09.12 |
스칼라(scala) - 변수(var) 또는 값(val) (0) | 2017.09.11 |
스칼라(scala) - List (0) | 2017.09.10 |
- Total
- Today
- Yesterday
- Cocos2d-x
- 수학
- 데이터베이스
- scala
- Java
- swift
- SwiftUI
- 자료구조
- 국내여행
- rxswift
- JSP
- C
- ue4
- SOCKET
- C++
- SHADER
- 드라마
- OS
- DesignPattern
- ios
- machine learing
- 알고리즘
- Spring
- winsock
- game
- C/C++
- 운영체제
- database
- Git
- mongoDB
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |