ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 람다식 함수 종류
    Java 2022. 8. 25. 01:37

    기본적으로 일반 함수와 람다함수를 비교해보자.

    아래는 기본적인 일반 자바 함수이다.

    1
    2
    3
    public int getNumber(int i){
        return i + 1;
    }

     

    위의 자바함수를 람다식 함수로 변경하면 아래와 같다.

    1
    2
    3
    (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개 이면 중괄호 생략이 가능하다.

    1
    2
    A a = () -> { System.out.println("Hello World"); }
    A a = () -> System.out.println("Hello World");

     

    2. 매개변수 타입 생략 가능, 매개변수가 1개일때 소괄호 생략 가능

        - 소괄호를 생각 할때는 반듯이 매개변수 타입을 생략해줘야한다.

    1
    2
    3
    4
    5
    A a = (int x) -> { … };
    A a = (x) -> { … };
    A a = x -> { … };
     
    A a = int x -> { … };   -> 오류발생

     

    3. return만 존재할때, return 생략가능

        - return을 생략할때는 반드시 중괄호도 같이 생략해야한다.

    1
    2
    3
    4
    A a = (int i, int j) -> { return i + j; };
    A a = (int i, int j) -> i + j; 
     
    A a = (int i, int j) -> { i + j; };   -> 오류발생    

     

     

     

     

     

     

    댓글

Designed by Tistory.