inblog logo
|
LHS's Study Space
    기술정리

    [기술 정리] 람다식(Lambda Expression)

    lhs's avatar
    lhs
    Nov 20, 2024
    [기술 정리] 람다식(Lambda Expression)
    Contents
    1. 람다식이란2. 람다식 구조3. 함수형 인터페이스4. 람다식 사용
    💡
    간결한 문법으로 함수형 프로그래밍을 구현할 수 있도록 지원하는 익명 함수 표현식
     

    1. 람다식이란

    익명 함수를 표현하는 간결한 방법으로, 함수형 인터페이스를 구현할 때 사용된다. Java 8에서 도입되어, 매개변수와 반환값을 갖는 짧은 함수를 함수형 인터페이스의 인스턴스로 간단히 구현할 수 있게 해준다. 람다는 코드의 가독성을 높이고, 함수형 프로그래밍 스타일을 지원한다.

    2. 람다식 구조

    • 람다식은 두 가지 형태가 있다.
    • 단일 표현식 람다
      • (매개변수) -> 내용의 형태를 가진다.
      • 매개변수가 없을 경우 괄호를 비워도 된다.
      • 매개변수가 하나일 때 괄호를 샹략할 수 있다.
      • 반환값이 필요하면 자동으로 반환된다.
    • 블록 람다
      • (매개변수) -> { 내용 }의 형태를 가진다.
      • 매개변수가 없을 경우 괄호를 비워도 된다.
      • 매개변수가 하나일 때 괄호를 샹략할 수 있다.
      • 단일 표현식 형태와 차이점은 중괄호를 사용하고 여러 줄의 코드도 작성할 수 있다.
      • 반환값이 필요하면 return을 명시해야 한다.

    3. 함수형 인터페이스

    • 함수형 인터페이스는 하나의 추상 메서드만을 가진다.
    • default 메서드나 static 메서드는 추가할 수 있다.
    • @FunctionalInterface 어노테이션을 사용하여 함수형 인터페이스임을 명시할 수 있다.
    @FunctionalInterface public interface MyConsumer<T> { void consume(T data); }
    • 입력만 받고 출력이 없는 연산을 수행하는 함수형 인터페이스
    @FunctionalInterface public interface MySupplier<T> { T get(); }
    • 입력 없이 값을 반환하는 함수형 인터페이스
    @FunctionalInterface public interface MyFunction<T, R> { R apply(T t); }
    • 입력을 받아서 결과를 반환하는 함수형 인터페이스
    @FunctionalInterface public interface MyPredicate<T> { boolean apply(T t); }
    • 입력을 받아 논리값을 반환하는 함수형 인터페이스

    4. 람다식 사용

    public class App { public static void main(String[] args) { MyConsumer<Integer> r1 = (data) -> { System.out.println("소비할 데이터: " + data); }; r1.consume(1); MySupplier<String> r2 = () -> { return "good"; }; MySupplier<String> r3 = () -> "good"; String msg = r3.get(); System.out.println(msg); MyFunction<Integer, String> r4 = (data)->{ return "data:" + data; }; MyPredicate<Integer> r5 = x -> x > 5; boolean msg2 = r5.apply(10); System.out.println(msg2); } }
    • MyConsumer<Integer> r1
      • 블록 람다를 사용하여 출력을 정의했다.
      • 정수 값을 받아 해당 내용을 출력한다.
    • MySupplier<String> r2
      • 블록 람다를 사용하여 문자열을 반환했다.
      • 입력값 없이 “good”을 반환한다.
    • MySupplier<String> r3
      • 단일 표현식 람다를 사용하여 자동반환을 통해 문자열을 반환했다.
      • 입력값 없이 "good"을 반환한다.
    • MyFunction<Integer, String> r4
      • 블록 람다를 사용하여 정수형 값을 받아 문자열로 반환했다.
      • 정수 값을 받아 “data: ” 뒤에 정수값을 추가하여 반환한다.
    • MyPredicate<Integer> r5
      • 단일 표현식 람다를 사용하여 논리값을 반환했다.
      • 입력값이 5보다 크면 true를 반환한다.
    Share article
    Contents
    1. 람다식이란2. 람다식 구조3. 함수형 인터페이스4. 람다식 사용

    LHS's Study Space

    RSS·Powered by Inblog