[JAVA] 람다식이란?
람다식이란?
: '메서드를 하나의 식으로 표현한 것'
함수를 간략하면서도 명확한 식으로 표현할 수 있게 해준다.
메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없어지므로 람다식을 '익명함수' 라고도 한다.
람다식으로 인해 메서드를 변수처럼 다루는 것이 가능해졌다.
람다식의 도입으로 자바는 객체지향언어인 동시에 함수형 언어가 됨.
반환타임 메서드이름 (매개변수 선언) { 반환타임 메서드이름 (매개변수 선언) -> {
문장 => 문장
} }
*메서드와 함수의 차이
: 메서드는 함수와 같은 의미지만 특정 클래스에 반드시 속해야 한다는 제약이 있어
기존 함수와 같은 의미의 다른 용어를 선택해서 사용한 것.
특징
- 반환값이 있는 메서드의 경우, return 문 대신 '식'으로 사용할수 있다.
식의 연산결과가 자동적으로 반환값이 된다.
이때는 '문장'이 아닌 식이므로 끝에 ' ; '를 붙이지 않는다.
(int a, int b) -> a>b? a:b
- 람다식에 선언된 매개변수의 차입은 추론가능할 경우 생략가능하다.
대부분의 경우 생략 가능.
(a, b) -> a>b? a:b
- 매개변수가 하나뿐인 경우, 괄호 생략가능하다.
단, 매개변수의 타입이 있으면 괄호()를 생략 할 수 없다.
a -> a * a
(int a) -> a * a
- 괄호 {} 안의 문장이 하나일 때는 괄호 {}를 생략할 수 있다.
이때, 문장의 끝에 ';'을 붙이지 않아야 한다.
- 괄호 {} 안의 문장이 return 문일 경우 괄호{}를 생략할 수 없다.
(int a, int b) -> { return a>b? a:b; }
'Development > 자바' 카테고리의 다른 글
[JAVA] 객체지향 설계의 5가지 원칙 SOLID (0) | 2021.01.13 |
---|---|
[JAVA] 객체지향의 특징 (0) | 2021.01.13 |
[JAVA] 자바란? (0) | 2020.11.10 |
[JAVA] 스택과 큐 (0) | 2020.11.05 |
[JAVA] 배열 (0) | 2020.10.28 |