오답노트

[Java] 람다식 본문

Java

[Java] 람다식

권멋져 2023. 7. 10. 10:16

함수형 프로그래밍

함수형 프로그래밍은 순수함수를 구현하고 호출함으로써 외부 자료에 부수적인 영향을 끼치지 않도록 구현하는 방식이다. 즉, 함수 내부에서 함수 외부에 있는 변수를 사용하지 않아 함수가 수행되더라도 외부에는 영향을 주지 않는다.

 

외부 자료를 사용하지 않기 때문에 병렬처리가 가능하다. 함수형 프로그래밍은 함수의 기능이 자료에 독립적임을 보장한다. 이를 동일한 자료에 대해 동일한 결과를 보장하고, 다양한 자료에 대해 같은 기능을 수행할 수 있다.

 

람다식 표현

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

// Add.Java
public interface Print {
	public void print(String str);
}

// Print.java
public class AddTest {

	public static void main(String[] args) {
		
		Add addL = (x, y) -> {return x+y;}; // 람다 기본형
		
		Print print = str->{System.out.println(str);}; //매개변수가 하나일 때 괄호 생략 가능
		
		/*
		
 		x, y -> {System.out.println(x+y);};  // 매개 변수 두 개 이상인 경우 괄호 생략 불가 (오류)
		
		str-> System.out.println(str); // 실행문이 한 문장인 경우 중괄호 생략 가능
		str-> return str.length();  // return 포함시 중괄고 생략 불가 (오류)
		
		(x, y) -> x+y; // 실행문이 한 문장의 반환문인 경우엔 return과 중괄호를 모두 생략
		
		*/
		
		System.out.println(addL.add(2, 3));
	}

}

// AddTest.Java

 

FunctionalInterface

인터페이스 내에서 여러 개의 매서드를 선언하면 에러를 발생시킨다.

 

@FunctionalInterface
public interface MyNumber {
	public int getMax(int num1, int num2);
}

'Java' 카테고리의 다른 글

[Java] 예외 처리  (0) 2023.07.10
[Java] 스트림  (0) 2023.07.10
[Java] 지역 내부 클래스와 익명 내부 클래스  (0) 2023.07.10
[Java] 추상화  (0) 2023.07.08
[Java] 인터페이스  (0) 2023.07.08