언어 공부/JAVA_자바

[JAVA / 자바] 람다 표현식 Lambda Expression

Seunghyun_KO 2024. 8. 31. 21:37
728x90
반응형

람다 표현식이 등장하게 된 배경

초기 Java에서는 함수형 프로그래밍(Functional Programming)을 이용하여 코드를 작성하기 매우 척박한 환경이었습니다. 함수/메서드를 파라미터로 전달하기 위해서는 익명 클래스(Anonymous Class)를 사용하는 등의 방법을 사용해야만 했고 이에 따라서 코드가 길어짐과 더불어 가독성은 함수형 프로그래밍을 하기 위해 타협해야 하는 상황이 벌어졌습니다. 따라서, Java에서는 이와 같은 단점을 보완하기 위해 Java 8부터 람다 표현식이라는 새로운 패러다임을 도입함으로써 문제를 해결하였습니다.

 

람다 표현식 사용 방법

람다 표현식의 대표적인 형태는 다음과 같습니다.

(변수타입 변수명) -> { return 반환값; }

일반적인 함수/메서드의 형태와 달리 람다 표현식에서는 함수의 이름이 존재하지 않습니다. 그렇기 때문에 람다 표현식이름이 없는 함수(Anonymous Fuction)이라고도 불립니다.

 

람다 표현식은 Java에서 함수형 프로그래밍으로 보다 간편하고 편리하게 코드를 작성할 수 있도록 하기 위해 도입된 패러다임이기 때문에 목적에 따라 더 단순하게 사용을 할 수 있습니다.

 

1. 매개 변수 타입이 유추 가능할 경우 매개변수의 타입을 생략할 수 있습니다.

// original
(int x) -> { return x + 10; }

// 매개변수 x의 타입이 int형으로 유추 가능하기 때문에 매개변수의 타입을 생략할 수 있음
(x) -> { return x + 10; }

2. 매개 변수가 하나인 경우 매개변수의 괄호를 생략할 수 있습니다.

// original
(int x) -> { return x + 10; }

// 매개변수가 1개 이므로 매개변수의 괄호를 생략할 수 있음
x -> { return x + 10; }

3. 람다 표현식 바디에 리턴만 존재하는 경우 바디의 중괄호를 생략할 수 있습니다.

// original
(int x) -> { return x + 10; }

// 바디문이 리턴문밖에 없을 때 바디의 중괄호를 생략할 수 있음
(int x) -> return x + 10;

위 3가지 경우는 중복해서 적용할 수도 있습니다.

// original
(int x) -> { return x + 10; }

// 1, 2, 3번 모두 적용한 경우
x -> return x + 10;

 

728x90
반응형