람다
람다
정의
- 함수형 프로그래밍을 지원하기 위한 핵심 기능
- 익명 함수
람다의 특징
- 람다를 사용하면 익명 클래스 사용의 보일러플레이트 코드를 크게 줄이고, 간결한 코드로 생산성과 가독성을 높일 수 있음
- 대부분 익명 클래스는 람다로 대체할 수 있음
- 람다를 사용할 때
new키워드를 사용하지 않지만, 람다도 익명 클래스처럼 인스턴스가 생성 됨
함수형 인터페이스
- 정확히 하나의 추상 메서드를 가지는 인터페이스
- 람다는 함수형 인터페이스에만 할당할 수 있음
- 단일 추상 메서드를 줄여서 SAM(Single Abstrace Method)이라 함
@FunctionalInterface
- 함수형 인터페이스인지 컴파일 단계에서 체크해주는 어노테이션
- 만약 추상 메서드가 하나가 아니라면 에러가 발생 함
람다와 시그니처
- 람다를 함수형 인터페이스에 할당할 때는 메서드의 형태를 정의하는 요소인 메서드 시그니처와 반환 타입이 모두 일치해야 함
람다와 문법
- 기본형태: (매개변수) → {본문}
- 생략 가능
- 단일 표현식(본문, 반환생략):
x -> x + 1 - 타입 추론:
(int x) -> x: (x) -> x - 매개변수 괄호(단일 매개변수 일 때):
x -> x
- 단일 표현식(본문, 반환생략):
- 시그니처가 함수형 인터페이스와 일치해야 함
고차 함수
- 함수를 인자로 받는 함수(메서드)
- 함수를 반환하는 함수(메서드)
참고
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.