람다 표현식 (lambda expression)

김대협·2022년 12월 23일
0

람다 표현식 (lambda expression)


람다 표현식은 메서드로 전달할 수 있는 익명 함수(Anonymous Function)를 단순화 처리한 것이라고 할 수 있다.
람다라는 용어는 람다 미적분학 학계에서 개발한 시스템에서 유래(람다 대수 λ) 됐다고 한다.

자바의 람다는 JDK 8(GA: 2014/3/18 ~)부터 도입되었다.
C#, Scala 와 같은 비슷한 기능을 가진 언어와 비슷한 문법으로 적용되었다.

람다의 특징


1) 익명
메서드와 달리 이름이 없으므로 익명이라 표현한다.
구현해야 할 코드에 대한 걱정거리가 줄어든다.
2) 함수
메서드처럼 특정 클래스에 종속되지 않으므로 함수라 부른다.
하지만 메서드처럼 파라미터, 바디, 반환, 가능한 예외 리스트를 포함한다.
3) 전달
람다 표현식을 인수로 전달하거나 변수로 저장할 수 있다.
4) 간결성
익명 클래스처럼 많은 양의 코드를 작성할 필요가 없다.

람다의 사용


람다는 파라미터 리스트(또는 없음), 구분자(->), 표현식(또는 구문)을 가질 수 있다.

  • (parameters) -> expression
  • (parameters) -> { statements; }

Expression: '수식'이라는 뜻으로 하나 이상의 값으로 표현(reduce)될 수 있는 코드로 평가(evaluate)가 가능해서 하나의 값으로 반환될 수 있다.
Statement: 프로그래밍에서 실행 가능한 최소의 독립적인 코드 조각을 일컫는다.

Comparator 구현 예제


// anonymous class style
Comparator<Person> byAge = new Comparator<Person>() {
    @Override
    public int compare( Person o1, Person o2 ) {
        return o1.getAge() - o2.getAge();
    }
};

// lambda style
Comparator<Person> byLambdaAge = ( o1, o2 ) -> o1.getAge() - o2.getAge();

Reference


Java 8 in Action (2014) - Raoul-Gabriel Urma, Mario Fusco, and Alan Mycroft


© 2022.12 Written by Boseong Kim.
profile
기록하는 개발자

0개의 댓글