코딩 기록들

자바의 다양한 기능들 2. 함수형 프로그래밍과 람다식 Lamada expression 본문

Java

자바의 다양한 기능들 2. 함수형 프로그래밍과 람다식 Lamada expression

코딩펭귄 2024. 1. 4. 23:26

 

함수형 프로그래밍과 람다식
  • 자바 8부터 함수형 프로그래밍 방식을 지원하고 이를 람다식이라 함
  • 함수의 구현과 호출만으로 프로그래밍이 수행되는 방식
  • 함수형 프로그래밍 : 함수를 기반으로 하는 프로그래밍이고 입력받는 자료 이외에 외부 자료를 사용하지 않아 여려 자료가 동시에 수행되는 병렬처리가 가능
  • -> 함수형 프로그래밍은 함수의 기능이 자료에 독립적임을 보장. 이는 동일한 자료에 대해 동일한 결과를 보장하고, 다양한 자료에 대해 같은 기능을 수행할 수 있음
  • 함수형 프로그래밍은 순수함수(pure function)를 구현하고 호출함으로써 외부 자료에 부수적인 영향(side effect)를 주지 않도록 구현하는 방식
  • -> 순수 함수란 매개변수만을 사용하여 만드는 함수. 즉, 함수 내부에서 함수 외부에 있는 변수를 사용하지 않아 함수가 수행되더라도 외부에는 영향을 주지 않음

 

람다식 문법

- 람다식은 함수의 이름은 없다 -> 매개변수와 매개변수 실행하는 실행문만이 있음 (펑셔널 프로그래밍 : 함수 & 매개변수)

1. 익명함수 만들기

2. 매개변수와매개변수를 이용한 실행문

(매개변수) -> {실행문;}
=> 의미 : 매개변수를 받아서 실행문을 실행해라

 

- 두수를 입력받아 더하는 예시

(int x, int y) -> {return x+y;}

 

 

1. Add 인터페이스 만들기

public interface Add {
	public int add(int x, int y);
}

 

2. AddTest 자바파일 만들어서 메인에 작성

public class AddTest {
    public static void main(String[] args) {
    
		Add.addL = (x,y) -> {return x+y;}; // 원래코드
        Add addL = (x,y) -> x+y;  // 간결하게 쓴 코드
     
        System.out.println(addL.add(2,3));
    }
}

 

 

 

람다식 규칙들

 

- 매개변수가 1개일 경우 : 자료형과 괄호 생략가능

str->{System.out.println(str);}

 

- 매개변수가 2개이상일경우 : 괄호생략  불가능

x, y -> {System.out.println(x+y);}  //오류

 

 

 

 

- 실행문이 한문장인경우 중괄호 생략가능

str-> System.out.println(str);

 

- 실행문이 한 문장이라도 return문(반환문)은 중괄호를 생략할 수 없음

str-> return str.length();  //오류

 

- 실행문이 한 문장의 반환문인 경우엔 return과 중괄호를 모두 생략

(x, y) -> x+y;
str -> str.length;
 

 

 

 

 

 

 

 

 

출처 : 패스트캠퍼스 자바