18.4 리턴값이 있는 람다식
1. 계산기 (Input -> Output) 🧮
값을 받아서 처리한 뒤, 결과를 돌려주는(Return) 람다식입니다. 마치 계산기나 믹서기(과일 넣으면 주스 나옴)와 같습니다.
- 문법:
(x, y) -> { return x + y; }
2. 문법 규칙 (return 생략)
실행문이 return 문 딱 하나인 경우에는, return 키워드와 중괄호 {}를 동시에 생략할 수 있습니다. (이게 핵심입니다!)
// 1. 정석 (중괄호 + return 사용)
(x, y) -> {
return x + y;
}
// 2. 약식 (중괄호와 return 동시 생략 - 가장 많이 씀)
(x, y) -> x + y
3. 예제: 계산기 구현
함수형 인터페이스 정의
package ch18.sec04;
@FunctionalInterface
public interface Calcuable {
double calc(double x, double y); // 리턴값이 있는 메소드
}
실행 코드
package ch18.sec04;
public class LambdaExample {
public static void main(String[] args) {
Person person = new Person();
// 1. 정석 방식
person.action((x, y) -> {
double result = x + y;
return result;
});
// 2. 약식 (표현식) - 덧셈
// return (x + y); 와 동일
person.action((x, y) -> (x + y));
// 3. 약식 - 메소드 호출
// return sum(x, y); 와 동일
person.action((x, y) -> sum(x, y));
}
public static double sum(double x, double y) {
return (x + y);
}
}
실행 결과
결과: 14.0
결과: 14.0
결과: 14.0
핵심:
(x, y) -> x + y라고 쓰면 컴파일러가 알아서"아, x + y 값을 리턴하라는 거구나"라고 해석합니다.
서브목차