람다식이란?

 

함수형 프로그래밍이란 함수를 정의하고 이 함수를 데이터 처리부로 보내 데이터를 처리하는 기법을 말한다.

동일한 데이터라도 함수A를 제공해서 처리하는 결과와 함수B를 제공해서 처리하는 결과는 다를 수 있다. 이것이 함수형 프로그래밍의 특징으로, 데이터 처리의 다형성이라고도 볼 수 있다.

 

매개변수가 없는 람다식
case 1 () -> { 실행문;}
case 2 () 실행문

person.action(() -> {
     System.out.println("출근을 합니다.");
     System.out.println("프로그래밍을 합니다.");
 });

person.action(() -> System.out.println("퇴근합니다..");

 

매개변수가 있는 람다식
1.(타입 매개변수, ...) -> {
	실행문;
    실행문;
}

(타입 매개변수, ...) -> 실행문

2.(var 매개변수, ...) {
	실행문;
    실행문;
}

(var 매개변수, ...) -> 실행문

3.(매개변수, ...) -> {
실행문;
실행문;
}

(매개변수, ...) -> 실행문

 

매개변수가 하나일 때
매개변수 -> 실행문

 

이때는 타입 또는 var를 붙일 수 없다.

 

리턴값이 있는 람다식
(매개변수, ...) -> {
    실행문;
    return 값;
}

(매개변수, ...) -> 실행문;
ex person.action((x,y) -> (x + y));

 

메소드 참조

 

메소드 참조는 말 그대로 메소드를 참조해서 배개변수의 정보 및 리턴 타입을 알아내 람다식에서 불 필요한 매개변수를 제거하는 것을 목적으로 한다.

 

(left, ringt) -> Math.max(left, right);

Math :: max;
로 사용가능

@FuctionalInterface
public interface Calcuable{
	public interface Calcuable{
    	double calc(double x, double y);
    }
}


public class Person {
	public void action(Calcuable calcuable){
    	double result = calcuable.calc(10, 4);
        System.out.println("결과: " + result);
}


public static void main(String[] args){

	Person person = new Person();
    
	person action( Computer :: static Method );

	Computer com = new Computer();
    
    person action( com:: instanceMethod );

 

매개변수의 메소드 참조
(a, b) -> { a.instanceMethod(b); }
클래스 :: instanceMethod

person.ordering( String :: compareToIgnoreCase );

 

생성자 참조

 

생성자를 참조한다는 것은 객체를 생성하는 것을 의미한다. 람다식이 단순히 객체를 생성하고 리턴하도록 구성된다면 람다식을 생성자 참조로 대치할 수 있다. 다음 코드를 보면 람다식은 단순히 객체를 생성한 후 리턴만 한다

 

(a, b) -> { return new 클래스 (a,b) }
클래스 :: new

'코딩 > 자바' 카테고리의 다른 글

김영한 스프링 기본편 섹션1  (2) 2023.11.28
이것이 자바다 스트림  (0) 2023.11.28
이것이 자바다 generic 정리  (1) 2023.11.26
String 메소드 자바 17 정리  (1) 2023.11.26
스프링 버전별 정리  (0) 2023.10.20

+ Recent posts