람다식

0
  • java : oop언어
  • jdk 1.8부터 함수형언어의 기능을 추가시켰음.
    -> oop언어 겸 함수형 언어인데, 함수형이 얼마 없긴 함

람다식(Lambda Expression)

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

람다식 작성하기

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

주의사항

  1. 매개변수가 하나인 경우, 괄호() 생략 가능 (타입이 없을 때만!)
  2. 블록 안의 문장이 하나뿐일 때, 괄호 {}생략 가능 (끝에 ; 안붙임)

람다식의 예제

람다식은 익명 함수? 익명 객체!

  • 람다식은 익명함수가 아니라 익명 객체이다.
  • 람다식(익명 객체)를 다루기 위한 참조변수가 필요. 참조변수의 타입은?

    -> 자바에서는 메서드만 존재할 수 없기 때문에 익명객체 new Object(){}안에 넣어서 표현해야 한다.
    하지만 obj라는 리모컨에 max()를 건들 수 없기 때문에 함수형 인터페이스가 필요함.
profile
백엔드를 공부하고 있습니다.

0개의 댓글