Language/Java

람다식 (Lamda Expression)

by Donghwan 2023. 1. 31.

  • Java8부터 지원된 기능으로 자바는 객체지향 언어의 특징과 함께 함수형 언어의 특성을 갖추게 되었습니다.
  • 람다식이란 함수를 하나의 식으로 표현한 것 입니다. 함수를 람다식으로 표현하면 Method의 이름이 필요없기 때문에, 람다식은 익명함수의 한 종류라고 볼 수 있습니다.
  • 익명함수란 함수의 이름이 없는 함수로, 익명함수들은 모두 일급 객체입니다. 일급 객체인 함수는 변수처럼 사용가능하며 매개 변수로 전달이 가능한 특징이 있습니다.
  • 람다식이 등장하게 된 이유는 코드의 효율과 가독성 향상때문입니다. 컴파일러가 문맥을 살피고 타입을 추론합니다.
  • 람다식 내부에서 사용되는 지역변수는 final을 붙이지 않아도 상수로 간주됩니다.
  • 람다식으로 선언된 변수명은 다른 변수명과 중복될 수 없습니다.

 

장점

  • 코드를 간결하게 만들 수 있습니다.
  • 개발자의 의도가 명확하게 드러나 가독성을 높일 수 있습니다.
  • 지연 연산(결과값이 필요할 때까지 계산을 늦추는 기법)을 통해 메모리상의 효율성 및 불필요한 연산의 배제가 가능하다는 장점이 있습니다.
  • 병렬 프로그래밍이 용이합니다.

 

단점

  • 모든 원소를 전부 순회하는 경우는 람다식이 조금 느릴 수밖에 없습니다.
  • 디버깅 시점에서 함수 콜스택 추적이 어렵습니다.
  • 무분별한 람다의 사용은 오히려 가독성을 해칠 수 있습니다.
 

GitHub - dev-donghwan/donghwan-study: donghwan-personal-study-repository

donghwan-personal-study-repository. Contribute to dev-donghwan/donghwan-study development by creating an account on GitHub.

github.com

 

728x90
반응형

'Language > Java' 카테고리의 다른 글

Thread in Java  (0) 2023.02.07
함수형 인터페이스 (Functional Interface)  (1) 2023.01.31
[Java] Exception  (0) 2021.11.26
[Java] Collection - (2) List란?  (0) 2021.11.12
[Java] Collection - (1) Collection Framework란?  (0) 2021.11.12

댓글