람다식 1

Min Kyu Jeon·2021년 10월 12일
1

람다식

람다식 (익명 함수) : 메서드를 하나의 식으로 표현한것
코드의 가독성, 코드 간결함 상승
메서드를 변수처럼 다루는 것이 가능

  • 메서드의 매개변수로 전달되어지는 것이 가능
  • 메서드의 결과로 반환 가능


int[] arr = new int[5];
Arrays.setAll (arr, (i) -> (int)(Math.random() *5) +1); //람다식

위와같은 람다식은 다음과 같은 기능을 한다.

int method(){
	return (int)(Math.random()*5) +1;
}

만약 람다식 없이 작성하게 되면 method기능을 하는 클래스 또한 추가로 만들고 객체를 생성해서 사용해야 한다.

  • 사용법
반환타입 메서드이름(매개변수 선언) {
	문장들
}

~~반환타입 메서드이름~~ (매개변수 선언) -> {
	~~문장들
}~~
  • 예제

두 값 중에서 큰 값을 반환하는 메서드

// 메서드
int max(int a,int b){
	return a > b ? a : b;
}

// 람다식 만드는 과정
// 1. 메서드 이름 삭제
(int a, int b) -> {
	return a > b ? a : b;
}

// 2. 반환값이 있는 경우 return문 대신 식으로 작성
(int a, int b) -> { a > b ? a : b; }

// 3. 람다식에 선언된 매개변수의 타입은 추론이 가능한 경우 생략 가능 , 하나만 생략 불가 
(a, b) -> { a > b ? a : b; }

// 4. 매개변수가 하나뿐인 경우 () 생략가능, 타입이 필요하면 불가

// 5. {}안의 문장이 하나일 경우 {} 생략 가능 이때 ;또한 지워져야함, return문장일 경우 같이생략
(a, b) ->  a > b ? a : b

1개의 댓글

comment-user-thumbnail
2021년 11월 8일

람다람쥐

답글 달기