Programming Language/Java & Kotlin
[Java] 람다식
happy coding!
2019. 6. 13. 01:05
반응형
람다식 (Lambda expression)
- JDK 1.8 부터 추가
- 람다식의 도입으로 인해 자바는 객체지향언어인 동시에 함수형 언어가 되었다.
- 람다식 덕분에 함수형 언어의 장점들을 자바에서도 누릴 수 있게되었다.
람다식이란?
- 람다식은 메서드를 하나의 식(expression)으로 표현한 것이다.
- 메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없어지므로, 람다식을 익명 함수(anonymous function)이라고도 한다.
- 모든 메서드는 클래스에 포함되어야 하므로 클래스도 새로 만들어야 하고, 객체도 생성해야만 비로소 이 메서드를 호출할 수 있다. 그러나 람다식은 이 모든 과정없이 오직 람다식 자체만으로도 이 메서드의 역할을 대신할 수 있다.
- 람다식은 메서드의 매개변수로 전달되어지는 것이 가능하고, 메서드의 결과로 반환될 수도 있다.
- 람다식으로 인해 메서드를 변수처럼 다루는 것이 가능해졌다.
람다식 작성하기
- 람다식은 '익명 함수' 답게 메서드에서 이름과 반환 타입을 제거하고 매개변수 선언부와 몸통 {} 사이에 '->' 를 추가한다.
반환타입 메서드이름 (매개변수 선언) {
문장들
}
(매개변수 선언) -> {
문장들
}
메서드를 람다식으로 변환하기
int max(int a, int b) { | (int a, int b) -> { return a > b ? a : b; } |
(int a, int b) -> a > b ? a : b | |
(a, b) -> a > b ? a : b | |
void printVar (String name, int i) { | (String name, int i) -> |
(name, i) -> { System.out.println(name + "=" + i); | |
(name, i) -> System.out.println(name + "=" + i); | |
int square(int x) { | (int x) -> x * x |
(x) -> x * x | |
x -> x * x | |
int roll() {return (int) (Math.random() * 6);} | () -> { return (int) (Math.random()*6); } |
() -> (int) (Math.random() * 6) | |
int sumArr(int[] arr) { | (int[] arr) -> { |
##
반응형