190
2
부
기본기 다지기
➊ 첫 번째 원소가 ‘
Scala
’ 문자열인
3
원소 튜플과 일치시키되, 두 번째와 세 번째 원소는 무시
한다.
➋ 원소의 타입과 관계없이
3
원소 튜플과 일치시킨다. 하지만 컴파일러는
langs
의 타입으로
부터 튜플의 원소 타입이
String
이라는 것을 추론해낸다. 각 원소를 추출해서
lang
,
first
,
last
라는 변수에 넣는다.
출력은 다음과 같다.
Found Scala
Found other language
:
Clojure
(
Rich
,
Hickey
)
Found other language
:
Lisp
(
John
,
McCarthy
)
튜플을 각 구성 원소로 나눌 수 있다. 튜플 안의 원하는 위치에 있는 리터럴 값에 대해 일치시킬
수도 있다. 한편 관심의 대상이 아닌 원소는 무시할 수도 있다.
4.5
케이스 절의 가드
리터럴 값에 대해 일치시키는 것은 매우 유용하다. 하지만 약간의 판단이 추가로 필요할 때가
있다.
//
src
/
main
/
scala
/
progscala2
/
patternmatching
/
match
-
guard
.
sc
for
(
i
<
-
Seq
(
1
,
2
,
3
,
4
))
{
i match
{
case
_
if i
%
2
==
0
=
>
println
(
s
"
even
:
$
i
")
//
➊
case
_
=
>
println
(
s
"
odd
:
$
i
")
//
➋
}
}
➊
i
가 짝수인 경우에만 일치시킨다. 이미
i
가 있기 때문에 변수를 사용하지 않고
_
를 사용한다.
➋ 다른 가능성에 대해 일치시킨다. 따라서
i
가 홀수인 경우를 처리한다.
Get 프로그래밍 스칼라: 실용적인 스칼라 활용법을 익히는 가장 확실한 실전 바이블 (2.11.x 버전 기반) now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.