티스토리 뷰

Language/Java

[JAVA8] 람다 표현식

JayStevency 2017. 1. 18. 17:55

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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
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 27 28 29 30 31
글 보관함