[인프런 워밍업 클럽 0기] BE 3일차 과제
[질문]
자바의 람다식은 왜 등장했을까?
자바의 람다식은 불필요한 코드를 줄이고, 가독성을 높이기 위해서 등장하였다.
람다식의 이점
코드의 간결함
병렬처리의 가능과 안정적인 확장성
람다식과 익명 클래스는 어떤 관계가 있을까?
익명 클래스
프로그램에서 일시적으로 한 번만 사용되고 버려지는 객체
재사용이 없고 확장성을 활용하는 것이 유지보수하는 것에 있어 불리할 때 사용
람다식
익명 함수의 한 형태로 볼 수 있으며 함수를 하나의 식으로 표현한 것을 말한다.
장점
- 코드의 간결함
- 개발자의 의도가 명확히 드러나 좋은 가독성
- 병렬 프로그래밍이 용이
단점
- 디버기의 어려움
- 람다로 만든 익명함수의 재사용 불가능
FunctionalInterface
추상 메소드가 오직 하나인 인터페이스를 의미
(default method, static method는 여러개 존재해도 상관없다는 뜻이다.)
@FunctionalInterface
어노테이션은 해당 인터페이스가 함수형 인터페이스 조건에 맞는지 검사해 준다.
람다식의 문법은 어떻게 될까?
람다식 기본 문법
(타입 매개변수, ...) -> {실행문; ...}
매개 타입은 런타임시에 대입값에 따라 자동으로 인식하기 때문에 생략 가능
(a) -> { System.out.println(a); }
하나의 매개변수만 있을 경우에는 괄호() 생략 가능
a -> { System.out.println(a); }
하나의 실행문만 있다면 중괄호 {} 생략 가능
a -> System.out.println(a);
매개변수가 없다면 괄호 ()를 생략할 수 없음
( ) - > { 실행문; ... }
리턴값이 있는 경우 return 문을 사용
(x, y) -> { return x + y; }
중괄호 {}에 return문만 있을 경우, 중괄호 생략 가능
(x, y) -> x + y
댓글을 작성해보세요.