inblog logo
|
taker
    스프링부트

    람다식

    김인범's avatar
    김인범
    Nov 21, 2024
    람다식
    Contents
    람다식의 구성장점과 단점

    💡
    람다식
    익명 함수를 나타내는 표현식으로,
    간결하고 간단한 방식으로 함수를 정의하고 사용할 수 있도록 해줍니다.
     

    람다식의 구성

    메서드 명<반환데이터 타입> 변수명 = ( 매개변수 ) → { 수행할 작업 };
     

    람다식 예시 코드

    Consummer Interface
    // 입력만 받고 출력이 없는 연산만 수행합니다. public interface MyConsumer<T> { void accept(T data); }
    • main
    MyConsumer<Integer> r1 = (data) -> { System.out.println("소비할 데이터: " + data); //return 이 없는 "식" };
    return 값이 없다.
     
    Supplier Interface
    // 공급자 | 입력없이 값을 반환 (Return) @FunctionalInterface // 람다식을 사용할 때 사용하는 어노테이션 (런타임에 확인) public interface MySupplier<T> { T get(); }
    • main
    MySupplier<String> r2 = () -> { //1. 만약에 오늘 날씨가 //2. 연산 //3. 리턴 return "Good"; }; MySupplier<String> r3 = () -> "Good"; String msg = r3.get(); System.out.println(msg); //결과: Good 출력됨
    매개변수가 없어도 메서드를 실행하면 값을 반환해준다.
     
    Function Interface
    // 입력을 받아서 결과를 반환 functionalInterface public interface MyFunction<T, R> { R apply(T t); }
    • main
    MyFunction<String, String> r4 = (data) -> { return "안녕하세요."; }; String result = r4.apply("hi"); System.out.println(result); // 결과 : 안녕하세요 출력됨
    매개변수를 받아서 return을 해준다. (람다표현식)
     
     
    Predicate Interface
    // 입력을 받아서 논리값을 반환 public interface MyPredicate<T> { boolean apply(T t); }
    • main
    MyPredicate<Integer> r5 = integer -> { return integer / 2 == 0; }; boolean result5 = r5.apply(3); System.out.println(result5); // 결과: false 출력됨
    매개변수를 받아서 boolean타입을 반환해준다. 논리
     

    장점과 단점

    장점

    1. 코드가 간결해지고 가독성이 높아진다.
    1. 익명 객체를 생성하지 않아도 된다.

    단점

    1. 람다식의 로직이 복잡하면 가독성이 떨어질 수 있다.
    1. 디버깅이 어렵다. → 에러 추적이 복잡해질 수 있다.
     
    Share article

    taker

    RSS·Powered by Inblog