[인프런 워밍업 클럽 0기] BE 3일차 과제

[인프런 워밍업 클럽 0기] BE 3일차 과제

[질문]

자바의 람다식은 왜 등장했을까?

자바의 람다식은 불필요한 코드를 줄이고, 가독성을 높이기 위해서 등장하였다.

 

  • 람다식의 이점

  1. 코드의 간결함

  2. 병렬처리의 가능과 안정적인 확장성

 

 

람다식과 익명 클래스는 어떤 관계가 있을까?

 

  • 익명 클래스

프로그램에서 일시적으로 한 번만 사용되고 버려지는 객체

재사용이 없고 확장성을 활용하는 것이 유지보수하는 것에 있어 불리할 때 사용

 

  • 람다식

익명 함수의 한 형태로 볼 수 있으며 함수를 하나의 식으로 표현한 것을 말한다.

장점

- 코드의 간결함

- 개발자의 의도가 명확히 드러나 좋은 가독성

- 병렬 프로그래밍이 용이

단점

- 디버기의 어려움

- 람다로 만든 익명함수의 재사용 불가능

 

  • 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

댓글을 작성해보세요.

채널톡 아이콘