본문
[2017.11.15] 27. 람다(Lambda) 개념과 사용 이유
컴퓨터/이론: 개발 2017. 11. 15. 01:17
도입
이번 포스팅에서는 람다의 개념과 특징에 대해 정리할 예정이다.
개념
(출처 - https://en.wikipedia.org/wiki/Lambda_expression)
람다 표현식은 익명의 함수이다. 덧붙여 설명하면 익명이라는 것은 함수를 객체로 정의해 사용하는 것이 아니라, 매개 변수로 바로 구현해 사용한다. 예를 들어, Thread 안에 익명의 runnable를 선언해 사용 할 수 있다.
1 2 3 4 5 | new Thread(new Runnable() { public void run() { // 처리해야할 로직 } }).start(); | cs |
람다를 사용하는 이유
람다 표현식을 사용하는 이유는 코드를 간결하게 전달할 수 있기 때문이다.
람다가 기술적으로 자바 8 이전의 자바로 할 수 없었던 일을 제공하는 것은 아니다. 다만 동작 파라미터를 이용할 때 익명 클래스 등 판에 박힌 코드를 구현할 필요가 없다! 람다 표현식을 이용하면 2장에서 살펴본 동작 파라미터 형식의 코드를 더 쉽게 구현할 수 있다. 결과적으로 코드가 간결하고 유연해진다.
(출처 - 자바 8 인 액션 p84)
람다 사용 전 |
람다 사용 후 |
||||||
|
|
람다의 특징
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | class LambdaBasic { // 1.callback 클래스를 lambda로 변경하기 // 함수명을 없애고 () {} 사이에 화살표를 넣는다. (int x) -> { System.out.println(x); } // 2. 파라미터가 하나이면 타입을 생략 가능 (x) -> { System.out.println(x); } // 3. 하나의 파라미터면 파라미터측의 괄호를 생략, // 로직이 한줄이면 로직측의 괄호를 생략 가능 x -> System.out.println(x); // 4. 파라미터가 없으면 괄호로 작성 () -> {System.out.println(x);} // 5. 리턴값이 있을 경우 () -> return "Hello"; // 6. 참조형 (인자가 하나이고, 실행되는 메소드의 매개변수가 1개라면) // 파라미터의 개수가 예측가능할 경우 객체::메소드 형태로 호출 가능 System.out::println } | cs |
#람다 #람다 사용 이유 #왜 람다 #lambda
'컴퓨터 > 이론: 개발' 카테고리의 다른 글
[2017.11.15] 29. Thread-safe List (CopyOnWriteArrayList) 실습2 (0) | 2017.11.15 |
---|---|
[2017.11.15] 28. Thread-safe List (CopyOnWriteArrayList) 실습1 (0) | 2017.11.15 |
[2017.11.13] 22. Git Source Tree (0) | 2017.11.13 |
[2017.11.13] 21. Git VS GitHub VS GitFlow 개념 (0) | 2017.11.13 |
[2017.11.06] 20. 기여하고 있는 Git 프로젝트 갱신[Git 페이지] (0) | 2017.11.06 |
댓글