230630 람다 함수

보트·2023년 6월 30일
0

JAVA

목록 보기
7/8

람다 함수

: 익명 함수
: 함수를 단순하게 표현
: 두 개 이상의 입력값이 있는 함수는 최종적으로 1개의 입력값만 받는 람다 대수로 단순화될 수 있다. (curring)

익명 함수

: 함수의 이름이 없는 함수
: 일급 객체(First Class citizen)라는 특징이 있음
-> 다른 객체들에 적용 가능한 연산을 모두 지원하는 개체, 함수를 값으로 사용할 수도 있고 파라미터로 전달 및 변수에 대입 과 같은 연산이 가능함

장점

  1. 코드 구현이 간결
    : 불필요한 반복문을 대신할 수 있음
  2. 지연연산 수행
    : 불필요한 연산을 최소화할 수 있음
  3. 병렬처리 가능
    : 멀티스레드를 활용하여 병렬처리를 사용할 수 있음

단점

  1. 람다식의 호출이 까다로움
  2. 람다 stream()을 사용할 경우 단순 for문, while문보다 성능이 떨어짐
  3. 불필요하게 많이 사용되면 가독성이 떨어질 수 있음

표현식

: 매개변수 -> 함수 바디
: 함수 바디가 단일 실행문이면 {} 생략 가능
: 함수 바디가 return문으로만 구성되어 있는 경우 {} 생략 불가능

 	Optional<User> checkUsername = userRepository.findByUsername(username);
        if(checkUsername.isPresent()){
            throw new IllegalArgumentException("중복된 사용자가 존재합니다.");
        }
userRepository.findByUsername(username)
        .ifPresent(user -> {
            throw new IllegalArgumentException("중복된 사용자가 존재합니다.");
        });
profile
일주일에 한 번

0개의 댓글