Notice
Recent Posts
Recent Comments
관리 메뉴

Developer Gonie

1. 스트림에서 사용되는 '람다식'(Java 8부터 추가됨) 본문

인프런 김영한님 강의/0. 수강중 Java 추가 공부

1. 스트림에서 사용되는 '람다식'(Java 8부터 추가됨)

이대곤 2022. 6. 25. 17:45

람다식(Java 8부터 추가됨)

* 람다식이란?

람다식은 매개변수를 가진 코드블록으로 런타임 시에 이를 실행할 수 있도록 익명 구현 객체를 생성한다.

 

익명 함수를 생성하기 위한 식으로 '객체 지향 언어' 보다 '함수 지향 언어'에 가깝다.

 

Lisp, Scheme와 같은 함수적 프로그래밍 언어들은 과거에 학계 외에 현업에서 큰 호응을 얻지 못하였는데, 최근에 들어와서 병렬처리이벤트 지향 프로그래밍에 적합해 다시 부각되고 있다. 함수적 프로그래밍과 객체 지향 프로그래밍은 다른데 이 둘을 혼합하여 사용하도록 프로그래밍 언어가 바뀌고 있는 것이다.

 

* Java에서 람다식을 수용한 이유

자바 코드가 매우 간결해지고, 컬렉션의 요소를 필터링하거나 매핑해서 원하는 결과를 쉽게 집계할 수 있기 때문이다.
(여기서 말하는 컬렉션이란 컬렉션 프레임워크인 List, Set, Map 인터페이스를 말하며 Arrays도 포함되는 듯 함)

 

* 람다식 기본문법

(타입1 매개변수1, 타입2 매개변수2,,,,) -> { 
						실행문1; 
						실행문2; 
                                         }

// ex) "int 매개변수 a의 값을 콘솔에 출력하는 코드를 람다식으로 작성하시오"
(int a) -> { 
		System.out.println(a); 
		System.out.println(a*2);
	   }

알아야할 람다식 기본문법 변형

// 1. 일반적으로 매개변수 타입지정은 생략한다.(런타임 시에 대입되는 값에 따라 자동으로 인식될 수 있기 때문에) 
(a) -> { System.out.println(a); }

// 2. 매개변수가 1개라면 괄호 () 를 생략할 수 있고, 하나의 실행문만 있다면 중괄호 { } 를 생략할 수 있다.
a -> System.out.println(a)

// 3. 매개변수가 없는 람다식을 작성할 경우 매개변수 자리에 ()를 반드시 남겨줘야 한다.
() -> { System.out.println("가나다라마바사"); }

// 4. 실행문에서 결과값을 반환하고 싶다면 return 문으로 결과값을 지정할 수 있다.
(x, y) -> { return x + y;};

// 5. 중괄호 {} 에 return 문만 있을 경우 일반적으로 return 문을 생략한다.
(x, y) -> x + y
Comments