-
기본적으로 일반 함수와 람다함수를 비교해보자.
아래는 기본적인 일반 자바 함수이다.
123public int getNumber(int i){return i + 1;}위의 자바함수를 람다식 함수로 변경하면 아래와 같다.
123(int i) -> {return i+1;}이런 람다식 함수는 매개변수와 리턴값에 따라 표현 조금씩 다르게 할 수 있다.
구분 메서드 람다식 람다식(약식) 매개변수와 리턴값이 없는 경우 void method() {
System.out.println(10);
}() -> {
System.out.println(10);
}() -> System.out.println(10); 리턴값이 없는 경우 void method(int i) {
System.out.println(i);
}(int i) -> {
System.out.println(i);
}i -> System.out.println(i); 매개변수가 없는 경우 int method() {
return 10;
}() -> {
return 10;
}() -> 10; 매개변수와 리턴값이 있는 경우 double method(int i, double d) {
return i + d;
}(int i, double d) -> {
return i + d;
}(i, d) -> i + d; 1. 중괄호 안에 실행문이 1개 이면 중괄호 생략이 가능하다.
12A a = () -> { System.out.println("Hello World"); }A a = () -> System.out.println("Hello World");2. 매개변수 타입 생략 가능, 매개변수가 1개일때 소괄호 생략 가능
- 소괄호를 생각 할때는 반듯이 매개변수 타입을 생략해줘야한다.
12345A a = (int x) -> { … };A a = (x) -> { … };A a = x -> { … };A a = int x -> { … }; -> 오류발생3. return만 존재할때, return 생략가능
- return을 생략할때는 반드시 중괄호도 같이 생략해야한다.
1234A a = (int i, int j) -> { return i + j; };A a = (int i, int j) -> i + j;A a = (int i, int j) -> { i + j; }; -> 오류발생댓글