람다식(Lambda expression)
람다식은 함수의 이름이 없는 익명 함수를 만들기 위한 표현식을 말한다.
자바에서는 함수, 즉 메서드를 사용하기 위해 많은 과정을 거치게 되는데 이러한 과정을 생략하여 함수를 하나의 간결한 식으로 표현한 것이 람다식이다.
즉, '식별자 없이 실행 가능한 함수'를 말한다.
람다식 문법
int add(int x, int y){
return x + y;
}
위 메서드는 자바에서 주로 사용하는 문법으로 작성된 더하기 기능의 함수(메서드)다.
이를 람다식 문법으로 표현하면 아래와 같다.
(x, y) → {return x + y;]
메서드의 이름과 반환 타입을 제거하고 화살표 기호를 사용해 구현한다.
- 람다식 문법에서는 매개변수 자료형을 생략할 수 있으며, 매개변수가 한 개인 경우 소괄호도 생략할 수 있다.
그러나 매개변수가 두 개 이상일 경우에는 생략할 수 없다.
- 함수의 구현 내용이 한 문장이거나 return이 없다면 (함수의 return 타입이 void라면) 구현부에 있는 중괄호{}도 생략 가능
만약 함수의 내용이 두 문장 이상이거나, return 타입이 있는 경우에는 생략할 수 없다.
- 중괄호 안의 구현 코드가 return문만 존재할 때는 중괄호와 return을 모두 생략할 수 있다.
함수형 인터페이스
람다식을 이용해 인터페이스를 사용할 경우,
인터페이스는 하나의 기능만을 정의할 수 있다.
람다식을 구현하기 위해서는 먼저 인터페이스를 만들고, 인터페이스에 람다식으로 구현할 메서드를 선언해야 한다.
오직 하나의 추상 메서드가 선언된 인터페이스만이 람다식의 타겟 타입이 될 수 있는데, 이런 인터페이스를 '함수형 인터페이스'라고 한다.
람다식은 메서드명이 없는 익명 함수로 구현하기 때문에 여러개의 메서드가 있는 경우 구분이 모호해지므로 함수형 인터페이스를 만들 때는 하나의 메서드만 정의하도록 한다.
'JAVA > 멘토씨리즈_자바' 카테고리의 다른 글
[JAVA] 멘토씨리즈 자바_SECTION.19 (0) | 2024.07.31 |
---|---|
[JAVA] 멘토씨리즈 자바_SECTION.18 (0) | 2024.07.30 |
[JAVA] 멘토씨리즈 자바_SECTION.16 (0) | 2024.07.28 |
[JAVA] 멘토씨리즈 자바_SECTION.15 (0) | 2024.07.28 |
[JAVA] 멘토씨리즈 자바_SECTION.14 (0) | 2024.07.28 |