14-1~4 람다식(Lambda Expression)

oyeon·2021년 3월 19일
0

Java 개념

목록 보기
60/70

람다식(Lambda Expression)

  • 함수(메서드)를 간단한 '식(expression)'으로 표현하는 방법
  • 익명 함수(이름이 없는 함수, anonymous function)
  • 함수와 메서드의 차이
    - 근본적으로 동일. 함수는 일반적 용어, 메서드는 객체지향개념 용어
    - 함수는 클래스에 독립적, 메서드는 클래스에 종속적

람다식 작성하기

  1. 메서드의 이름과 반환타입을 제거하고 '->'를 블록 {} 앞에 추가한다.
(int a, int b) -> {
	return a > b ? a : b;
}
  1. 반환값이 있는 경우, 식이나 값만 적고 return문 생략 가능(끝에 ';' 안 붙임)
(int a, int b) -> a > b ? a : b
  1. 매개변수의 타입이 추론 가능하면 생략가능 (대부분의 경우 생략가능)
(a, b) -> a > b ? a : b

람다식 작성시 주의사항

  1. 매개변수가 하나인 경우, 괄호() 생략가능(※ 타입이 없을 때만)
(a) -> a * a
a -> a * a // OK
(int a) -> a * a
int a -> a * a // Error
  1. 블록 안의 문장이 하나뿐일 때, 괄호 {} 생략 가능(끝에 ';' 안 붙임)
(int i) -> System.out.println(i)

람다식은 익명 객체(클래스)

  • 람다식은 익명 함수가 아니라 익명 객체다.
(a, b) -> a > b ? a : b

아래와 동일

new Object(){
    int max(int a, int b){
        return a > b ? a : b;
    }
}
  • 람다식(익명 객체)을 다루기 위한 참조변수가 필요. 참조변수의 타입은? -> 다음강의
profile
Enjoy to study

0개의 댓글