람다식 (Lambda Expression)

zerokick·2023년 4월 3일
0

Lambda Expression

목록 보기
1/1
post-thumbnail

람다식 (Lambda Expression)


람다식이란?

  1. 함수의 이름이 존재하지 않는 익명 함수(Anonymous Function)를 지칭한다.
  2. 프로그래밍 언어에서 사용되는 개념으로 Java에 국한되는 것이 아니다.
    • Java의 경우 Java 8 부터 도입
  3. 매개변수와 함수의 본문이 존재한다.

람다식의 장점

  1. 실행문 자체에 람다식을 전달하여 구현한다.
  2. 함수로 표현된 코드에 비해 코드 라인 수가 짧다.
  3. 가독성이 높다.
  4. 병렬 프로그래밍이 편리하다.

람다식의 단점

  1. 재사용이 불가능한 일회성 함수이다.
  2. 같은 기능의 람다식을 여러번 사용하면 오히려 가독성이 떨어질 수 있다.

람다식 구문

(매개변수) -> {함수 본문};	// 기본
(매개변수) -> 함수 본문;		// 함수 본문이 한줄인 경우 (단, 반환 타입이 void가 아닌 경우 괄호 생략 불가)
() -> {함수 본문};			// 매개변수가 하나인 경우
(x, y) -> {x + y};
(x, y) -> x + y;
(x, y) -> {
	return x + y;
}
() -> {x * 2};

예제

@FunctionalInterface
interface IFuncItf {
	int sum(int a, int b);
}

class CallMethod {
	public int test(IFuncItf funcItf, int x, int y) {
		System.out.println("호출==========");
		return funcItf.sum(x, y);
	}
}

public class Lambda {

	public static void main(String[] args) {
		int a = 2;
		int b = 3;
		int sum = 0;
		
		// 람다식 사용 x
		CallMethod withoutLambda = new CallMethod();
		
		sum = 
			withoutLambda.test(new IFuncItf() {
				@Override
				public int sum(int x, int y) {
					return x + y;
				}
			}, a, b);
		
		System.out.println("withoutLambda sum : " + sum);
		
		// 람다식 사용
		CallMethod withLambda = new CallMethod();
		
		sum =
			withLambda.test((x, y) -> {
				return x + y;
			}, a, b);
		
		System.out.println("withLambda sum : " + sum);
	}

}

결과

호출==========
withoutLambda sum : 5
호출==========
withLambda sum : 5

profile
Opportunities are never lost. The other fellow takes those you miss.

0개의 댓글