티스토리 뷰
02 : 람다 표현식 문법
람다 표현식 첫 번째 :
1 2 | (String first, String second) -> Integer.compare(first.length(), second.length()) |
위의 코드 처럼 변수들의 타입이 정확히 명시된 형태이다.
("매개변수") -> {
"함수의 몸통"
}
인 구조로 이루어 진다. 이때 함수의 형태가 Anonymous function 형태임을 기억해 두자.
자바의 기존의 Anonymous class 와 유사 한 형태로 사용하면 될 것 같다.
람다 표현식 두 번째 :
람다 표현식이 파라미터를 받지 않으면, 기존 함수와 마찬가지로 파라미터가 없는 메서드처럼 빈 괄호를 사용한다.
1 | () -> { for(int i = 0 ; i < 1000; i++) doWork();} |
람다 표현식 세 번째 :
파라미터 타입을 추정할 수 있는 경우에는 타입 생략이 가능 하다.
1 2 3 | Comparator<String> comp = (first, second) //(String first, String second)와 같음 -> Integer.compare(first.length(), second.length()); |
람다 표현식 네 번째 :
메서드의 파라미터의 갯수가 한개로 추정되면 괄호를 생략 가능하다
1 2 3 | EventHandler<ActionEvent> listener = event -> System.out.println("Thanks for clicking"); //(event) -> 또는 (ActionEvent event) -> 대신 사용한다. |
람다 표현식의 결과 타입 :
람다 표현식의 결과 타입은 지정하지 않는다. 결과 타입은 항상 문맥으로 부터 추정된다.
Note : 람다 표현식이 어떤 경우에는 값을 리턴하고, 다른 경우에는 리턴하지 않는 것은 규칙에 어긋난다.
'Language > Java' 카테고리의 다른 글
[JAVA8] 람다 표현식 (0) | 2017.01.24 |
---|---|
[JAVA8] 람다 표현식 (0) | 2017.01.24 |
[JAVA8] 람다 표현식 (0) | 2017.01.18 |
[JAVA8] 람다 표현식 (0) | 2017.01.18 |
[JAVA8] 람다 표현식 (0) | 2017.01.18 |