작성
·
8
·
수정됨
0
[질문 내용]
람다 (lambda)
람다는 익명 함수이다. 따라서 이름 없이 함수를 표현한다.
(매개변수) -> {본문}
용어 - 람다 vs 람다식(Lambda Expression)
람다 : 익명 함수를 지칭하는 일반적 용어. (개념)
람다식 : (매개변수) → {본문} 형태로 람다를 구현하는 구체적인 문법 표현을 지칭
람다도 익명 클래스처럼 클래스가 만들어지고, 인스턴스가 생성된다.
함수형 인터페이스는 정확히 하나의 추상메서드를 가지는 인터페이스를 말한다.
람다는 추상 메서드가 하나인 함수형 인터페이스에만 할당할 수 있다.
단일 추상 메서드를 줄여서 SAM(Single Abstract Method)라 한다.
@FunctionalInterface를 통하여 함수형 인터페이스를 보장할 수 있다.
추상 메서드가 추가되면 컴파일 오류 발생 !
(Ex) @Override를 통해 재정의된 함수임을 알 수 있듯이.
고차 함수란, 함수를 값처럼 다루는 함수를 뜻함
함수를 인자로 받는 함수(메서드)
함수를 반환하는 함수(메서드)
다음은 자바가 기본으로 제공하는 대표적 함수형 인터페이스이다.
Function : 입력 O, 반환 O
Consumer : 입력 O, 반환 X
Supplier : 입력 X, 반환 O
Runnable : 입력 X, 반환 X
Function으로 구현가능하나, 테스트 용도인 인터페이스라는 것을 명확히 하기 위해 사용
Predicate : 입력 O, 반환 boolean
조건 검사, 필터링 용도
Operator (UnaryOperator, BinaryOperator) : 입력 O, 반환 O
동일한 타입의 연산 수행, 입력과 같은 타입을 반환하는 연산 용도
추석 완강 챌린지 중 질문드리고 싶으나, 아직 완벽히 이해된 단계가 아니어서 부득이 복습하며 정리한 내용을 질문으로 작성했습니다. ㅠㅠ
틀린 부분 있다면 지적 부탁드립니다!
답변