ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 람다식
    JAVA 2021. 4. 5. 16:39

    람다식

     

    특징

     

    1. 함수 (메서드)를 간단한 ' '으로 표현하는 방법

    2. 익명 함수(이름이 없는 함수 , anonymous function)

    메서드를 람다로 바꿀떄 반환타입과 메서드 이름을 지우고 () { 이 사이에 -> 화살표를 넣는다
    이름이 없어지기때문에 익명함수라고 말한다.

     

    3.메서드를 간단히 표현하기 위한것.

    int max(int a, int b){
        return a > b ? a: b; // (a,b) -> a > b ? a : b
    }



    함수와 메서드의 차이


    - 근본적으로는 동일, 함수는 일반적용어, 메서드는 객치지향 개념 용어이다.
    - 함수는 클래스에 독립적'
    - 메서드는 클래스에 종속적

     

     

    람다식 작성하기


    1. 메서드의 이림과 반환타입을 제거하고 '->'를 블록{} 앞에 추가한다.

    int max3(int a, int b){
        return a> b? a: b; // (int a, int b) -> {return a>b ? a:b}
    }



    2. 반환값이 있는 경우, 식이나 값만 적고 return문 생략 가능( 끝에 ';'안 붙임)

    (int a, int b) ->{return a>b ? a: b;} -> (int a, int b) -> a > b ? a : b



    3. 매개변수의 타입이 추론 가능하면 생략가능(대부분의 경우 생략가능)

    (int a, int b) -> a > b ? a : b -> (a , b) -> a > b ? a : b

     

     

     

    람다식 작성하기 주의사항

    1. 매개변수가 하나인 경우, 괄호 () 생략가능(타입이 없을 떄만)
    (a) -> a*a -> a -> a*a            OK
    (int a) -> a*a -> int a -> a*a 
    에러

    2. 블록 안의 문장이 하나뿐 일때, 괄호{} 생략가능(끝에 ';' 안 붙임)
    (int i) - >{System.out.print(i);}   

     =

    (int) -> System.out.print(i)

     

    'JAVA' 카테고리의 다른 글

    #Builder 패턴  (0) 2021.05.11
    컬렉션 프레임웍과 함수형 인터페이스  (0) 2021.04.05
    인터페이스 Predicate<T>  (0) 2021.04.05
    JRE , JDK ?  (0) 2021.03.04
    JAVA란?  (0) 2021.03.04

    댓글

Designed by Tistory.