- 람다 함수는 프로그래밍 언어에서 사용되는 개념으로 익명 함수(Anonymous functions)를 지칭하는 용어이다.
- 현재 사용되고 있는 람다의 근간은 수학과 기초 컴퓨터과학 분야에서의 람다 대수이다. 람다 대수는 간단히 말하자면 수학에서 사용하는 함수를 보다 단순하게 표현하는 방법이다.
- 람다 대수는 이름을 가질 필요가 없다. - 익명 함수 (Anonymous function)
- 익명함수는 말 그대로 함수의 이름이 없는 함수이다. 익명함수들은 공통으로 일급객체(First Class citizen) 라는 특징을 가지고 있다.
- 일급객체는 다른 객체들에 적용 가능한 연산을 모두 지원하는 개체를 가르킨다.
- 함수를 값으로 사용 할 수도 있으며 파라메터로 전달 및 변수에 대입 하기와 같은 연산들이 가능하다.
장점
- 코드의 간결성 - 람다를 사용하면 불필요한 반복문의 삭제가 가능하며 복잡한 식을 단순하게 표현할 수 있다.
- 자연연산 수행 - 람다는 자연연산을 수행 함으로써 불필요한 연산을 최소화 할 수 있다.
- 병렬처리 기능 - 멀티쓰레디를 활용하여 병렬처리 사용 할 수 있다.
단점
- 람다식의 호출이 까다롭다.
- 람다 stream 사용 시 단순 for문 혹은 while문 사용 시 성능이 떨어진다.
- 불필요하게 너무 사용하게 되면 오히려 가독성을 떨어 뜨릴 수 있다.
- 람다는 매개변수 화살표(->) 함수몸체로 이용하여 사용 할 수 있다.
- 함수몸체가 단일 실행문이면 괄호{}를 생략 할 수 있다.
- 함수 몸체가 return문으로만 구성되어 있는 경우 괄호{}를 생랼 할 수 없다.
기존 자바 문법
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("Welcome Heejin blog");
}
}).start();
람다식 문법
new Thread(()->{
System.out.println("Welcome Heejin blog");
}).start();