람다식 (Lambda Expression, 람다 표현식)

박세건·2023년 6월 2일
0
post-thumbnail

공부하면서 람다식이라는 말은 많이들어봤고 익명함수라고는 들어봤지만 확실하게 알고 넘어가야할 것 같아서 람다식에 대해 작성하게되었다.

람다식 정의

람다식, 또는 람다 함수라 부른다. 프로그래밍 언어에서 사용되는 개념으로, 익명 함수(匿名函數, Anonymous functions)를 지칭하는 용어이다.

람다식 설명

람다식의 작성은 함수형 인터페이스의 추상 메소드에 코드를 작성하는 것과 같다. 인
터페이스를 상속받은 클래스를 명시적으로 작성하지 않고 익명의 클래스가 만들어지
는 방식으로 이루어진다. 그러므로 자바에서 람다식은 함수형 인터페이스를 구현한
객체(익명의 클래스)로 다루어져서 다음과 같이 람다식을 인터페이스 타입의 변수에
치환할 수 있다.

람다식 장점

람다식의 도입으로 인해, 자바는 객체지향 언어인 동시에 함수형 언어가 되었다.
간단히 말하면 메소드를 하나의 식으로 표현한 것이다.
익명 클래스처럼 객체의 선언과 생성을 동시에 한다
람다식은 불필요한 코드를 줄일 수 있으며, 가독성을 높여준다.

작성 규칙

  1. 기본적인 작성 규칙
    이름과 반환 타입은 작성하지 않음
  2. 매개변수
  • 추론이 가능한 매개변수 타입은 생략 가능
  • 단, 매개변수가 두 개 이상일 경우 일부의 타입만 생략하는 것은 허용되지 않음
  • 선언된 매개변수가 하나인 경우 괄호 () 를 생략 가능
  • 단, 매개변수의 타입을 작성한 경우엔 매개변수가 하나라도 괄호 () 를 생략할 수 없음
  1. body { }
  • return문 대신 식으로 대체 가능
  • 식의 끝에 세미콜론( ; )은 붙이지 않음
  • 괄호 { } 안의 문장이 하나일 때는 괄호 { } 를 생략할 수 있음
  • 이 때, 문장의 끝에 세미콜론( ; )은 붙이지 않음
  • 그러나 return 문은 괄호를 생략할 수 없음

작성법

람다식 작성하기
1. 메서드의 이름과 반환타입을 제거하고 '->'를 블록{} 앞에 추가한다.

int max(int a, int b) { return a>b ? a : b; }
↓ ↓

(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 }

람다식에 대해서 어느정도알게되었지만 조금더 확실하게 알아봐야할것 같아 나중에 다시한번 정리해보자

참조

profile
멋있는 사람 - 일단 하자

0개의 댓글