람다식(Lambda Expression)

인철·2023년 10월 4일

programming

목록 보기
4/17

Lambda Expression(람다식)

함수형 프로그래밍 개념 중 하나, 익명 함수를 간결하게 표현하는 방법

특징
-익명함수 : 이름이 없는 함수로, 한번 사용하고 버릴 수 있음

  • 간결한 문법 : 불필요한 코드를 줄이고, 코드를 간결하게 표현 가능
  • 함수를 값으로 다룸 : 함수를 변수에 할당하거나 함수의 매개변수 전달 가능
  • 클로저 지원 : 함수 내부에서 외부 변수 참조 가능

쓰이는 상황

  • 함수형 인터페이스 구현
// 함수형 인터페이스를 람다식으로 구현하는 예제
@RestController
public class MyController {
    @GetMapping("/greet")
    public String greet() {
        GreetingService greetingService = () -> "Hello, World!";
        return greetingService.sayHello();
    }
}
  • 스트림 연산 : 데이터를 필터링, 매핑, 정렬 및 그룹화 하는데 사용
// 람다식을 사용하여 스트림 연산하는 예제
@RestController
public class MyController {
    @Autowired
    private UserRepository userRepository;
@GetMapping("/users")
public List<User> getUsers() {
    List<User> users = userRepository.findAll();
    return users.stream()
        .filter(user -> user.getAge() > 18)
        .map(User::getName)
        .collect(Collectors.toList());
}

}

  • 이벤트 리스너
// 람다식을 사용하여 이벤트 리스너 정의하는 예제
@Component
public class MyEventListener {
    @EventListener
    public void handleEvent(MyCustomEvent event) {
        // 이벤트 처리 코드
        System.out.println("이벤트 발생: " + event.getMessage());
    }
}

람다식 연산자 기호

  • -> : 매개변수와 표현식을 구분하는 역할, 왼쪽에는 매개변수 목록을 오른쪽에는 람다 함수의 본문을 위치
  • () : 매개변수 목옥을 감싸는 괄호, 매개변수가 없는 경우에도 비워둘 수 있음
  • {} : 본문을 감싸는 괄호, 여러 문장을 포함할 때 사용
  • () 메서드호출 : 메서드를 호출할 때 사용되는 괄호
  • :: 메서드 참조 : 메서드를 참조할 때 사용, 메서드 레퍼런스로 알려저 있음
  • ...(가변인자) : 가변인자를 나타내는 표기
  • ::(생성자 참조) : 생성자 참조할 때 사용
profile
같은글이있어도양해부탁드려요(킁킁)

0개의 댓글