람다식 (Lambda Expression)
- 함수(메서드)를 간단한 '식(Expression)'으로 표현하는 방법

- 익명 함수 ➔ 이름이 없는 함수 (anonymous function)

- 함수와 메서드의 차이
근본적으로는 동일
함수 = 일반적 용어 / 메서드 = 객체지향개념 용어
함수 = 클래스에 독립적 / 메서드 = 클래스에 종속적
람다식 작성하기
1. 메서드의 이름과 반환타입을 제거하고 ' -> '를 블록{} 앞에 추가한다

2. 반환값이 있는 경우, 식이나 값만 적고 return문 생략 가능 (끝에 ' ; ' 안붙임)

3. 매개변수의 타입이 추론 가능하면 생략 가능

람다식 작성시 주의사항
1. 매개변수가 하나인 경우, 괄호() 생략 가능 (타입이 없을 때만)

2. 블록 안의 문장이 하나뿐 일 때, 괄호{} 생략 가능 (끝에 ' ; ' 안붙임)

단, 하나뿐인 문장이 return문이면 괄호{} 생략 불가

람다식 예

람다식 특징
- 람다식은 익명 함수가 아니라 익명 객체이다
- 람다식(익명 객체)을 다루기 위한 참조변수가 필요. 참조변수 타입은?
함수형 인터페이스
➔ 람다식을 이용하기 위해 사용함
단 하나의 추상메서드만 선언된 인터페이스

- 함수형 인터페이스 타입의 참조변수로 람다식을 참조할 수 있음
(단 함수형 인터페이스의 메서드와 람다식의 매개변수 개수와 반환타입이 일치해야 함)

함수형 인터페이스 타입의 매개변수

함수형 인터페이스 타입의 반환타입
