람다식

김인범's avatar
Nov 21, 2024
람다식

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

람다식의 구성

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

람다식 예시 코드

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