관리 메뉴

피터의 개발이야기

[Scala] flatMap과 match을 사용하는 법 본문

Programming/Scala

[Scala] flatMap과 match을 사용하는 법

기록하는 백앤드개발자 2024. 11. 26. 22:55
반응형

ㅁ 들어가며

ㅇ PR처리하다가 Scala에서 flatMap과 match를 함께 사용하는 방법을 간단히 정리

 

ㅁ flatMap 사용법

ㅇ flatMap은 컬렉션을 변환하고 평탄화하는 데 사용

val numbers = List(1, 2, 3)
val result = numbers.flatMap(x => List(x, x * 2))
println(result) // List(1, 2, 2, 4, 3, 6)

ㅇ 각 요소를 새로운 컬렉션으로 변환
ㅇ 결과 컬렉션들을 하나의 평탄화된 컬렉션으로 만듬.

 

ㅁ match 사용법

ㅇ match는 패턴 매칭을 위해 사용되며, 다양한 조건에 따라 다른 결과를 반환할 수 있다.

def describe(x: Any): String = x match {
  case 5 => "five"
  case true => "truth"
  case "hello" => "hi!"
  case Nil => "the empty list"
  case _ => "something else"
}

 

ㅁ flatMap과 match 조합

ㅇ flatMap과 match를 함께 사용하면 컬렉션의 요소를 변환하면서 동시에 패턴 매칭을 수행할 수 있다.

val mixed = List(1, "two", 3, "four", 5)
val result = mixed.flatMap {
  case i: Int => Some(i * 2)
  case s: String => None
}
println(result) // List(2, 6, 10)

ㅇ 정수만 2배로 증가시키고 문자열은 제거한다.

ㅇ flatMap은 None 값을 자동으로 제거하므로, 문자열에 대한 None 결과는 최종 리스트에 포함되지 않는다.

 

ㅁ 마무리

flatMap과 match의 조합은 복잡한 데이터 변환 작업을 간결하고 효과적으로 수행할 수 있게 해준다.

 

ㅁ 함께 보면 좋은 사이트

Spark: Collection의 flatMap을 이용한 비정상 패턴 처리

[scala] filter+map을 flatMap으로 변경 예시

반응형

'Programming > Scala' 카테고리의 다른 글

[Scala] 스칼라 함수형 프로그래밍  (0) 2024.09.11
[Scala] 스칼라 기본 문법 정리  (2) 2024.09.10
Comments