코딩 기록들
자바의 다양한 기능들 2. 함수형 프로그래밍과 람다식 Lamada expression 본문
함수형 프로그래밍과 람다식
- 자바 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;
출처 : 패스트캠퍼스 자바
'Java' 카테고리의 다른 글
[자바의 다양한 기능들] 6-2. 예외처리하기와 미루기(2) (1) | 2024.01.09 |
---|---|
자바의 다양한 기능들 5. 패키지 여행비용 계산하기 예제(스트림 활용) (1) | 2024.01.09 |
자바의 다양한 기능들 4. reduce() (1) | 2024.01.09 |
자바의 다양한 기능들 3.스트림 Stream (1) | 2024.01.07 |
자바의 다양한 기능들 1. 여러 내부클래스 (0) | 2024.01.04 |