반응형
[Java] 람다식 (Lambda Expression, 람다 표현식)
람다식은 함수(메서드)를 간단한 식(expression)으로 표현하는 바법이다.
람다식은 익명 함수(anonymous function)와 비슷한데, 사실은 익명 객체이다.
익명 클래스처럼 객체의 선언과 생성을 동시에 한다.
함수 vs 메서드
함수와 메서드는 근본적으로는 동일하다.
함수는 일반적 용어이고, 메서드는 객체지향 개념의 용어이다.
함수는 클래스에 독립적이며, 메서드는 클래스에 종속적이다.
람다식 작성하기
1. 메서드의 이름과 반환타입을 제거하고 '->'를 블록{} 앞에 추가한다.
int max(int a, int b) { return a>b ? a : b; }
↓ ↓
(int a, int b) -> { return a>b ? a : b; }
2. 반환값이 있는 경우, 식이나 값만 적고 return문은 생략 가능하다. 끝에 ';'도 붙이지 않는다.
(int a, int b) -> { a>b ? a : b }
3. 매개변수의 타입이 추론 가능하면 생략 가능하다 (대부분의 경우 생략 가능)
(a, b) -> { a>b ? a : b }
주의사항
1. 매개변수가 하나인 경우, 괄호() 생략 가능하다. (단, 타입이 없을 때만)
a -> a*a
2. 블록 안의 문장이 하나뿐일 때, 괄호{} 생략 가능하다. (끝에 ';'도 붙이지 않는다.)
(int i) -> System.out.println(i)
(출처: 유튜브 남궁성의 정석코딩)
반응형
'Java' 카테고리의 다른 글
[IntelliJ] 인텔리제이 프로젝트 깃허브에 올리기 (0) | 2021.10.05 |
---|---|
[Java] spring과 spring boot의 차이는 무엇일까? (0) | 2021.09.07 |
[Java] 내부 클래스 (inner class, 중첩된 클래스) (0) | 2021.08.19 |
[Java] 컬렉션 프레임워크 (Collections Framework) (0) | 2021.08.18 |
[Java] Generics란? 지네릭 프로그래밍(지네릭스) (0) | 2021.08.18 |