람다
함수를 간단한 식으로 표현한 걸 람다라고 한다.
int sum (int a, int b) {
return a + b;
}
// 위의 함수를 아래와 같은 식으로 변경한다.
(a, b) -> a + b
함수를 람다로의 변이 과정
반환타입과 함수이름을 제거하고 {} 앞에 -> 를 추가한다.
(int a, int b) -> {return a + b;}
컴파일 시 매개변수 타입을 유추할 수 있다. 그러므로 타입을 생략해도 된다.
(a, b) -> {return a + b;}
'return', '{}', ';'도 생략한다.
(a, b) -> a + b
그 외 람다 특징
- 매개변수가 하나일 때 () 생략 가능
- 하나 뿐인 문장이면 '{}' 생략 가능
- 하지만 하나뿐인 문장이 return 문이라면 생략 불가
(a) -> a+1
a -> a+1 // 위의 식과 같다. () 생략 가능
() -> System.out.println(); // 문장이 하나이면 {} 생략 가능
() -> return 10; //에러
'정리 > Java' 카테고리의 다른 글
Java - 함수형 인터페이스(Predicate) 합성 (0) | 2017.03.01 |
---|---|
Java - 함수형 인터페이스(Function) 합성 (0) | 2017.02.28 |
Java - 기본형을 사용하는 함수형 인터페이스 (0) | 2017.02.27 |
Java - 자바에서 제공하는 함수형 인터페이스 (1) | 2017.02.26 |
Java - 함수형 인터페이스 (0) | 2017.02.25 |
댓글