본문 바로가기

패스트캠퍼스 환급 챌린지

[패스트캠퍼스 수강 후기] {자바 인강} 100% 환급 챌린지 {26} 회차 미션

1. 람다식

 람다식이란? 

람다식이란 "식별자없이 실행가능한 함수"

함수인데 함수를 따로 만들지 않고 코드한줄에 함수를 써서 그것을 호출하는 방식이라고 생각하시면 되겠습니다.

함수적 프로그래밍을 위해 자바 8부터 람다식(Lambda Expressions)을 지원하면서 기존의 코드 패턴이 많이 달라졌습니다. 자바스크립트에서 주로 봤었던 문법들을 이제 자바에서도 종종 보이곤 해요. 람다가 처음에는 생소하게 느껴질 수 있지만 문법이 간결한만큼 익숙해지면 가독성 면에서 장점이 큰 듯 합니다. (고급 프로그래머들중에서는 람다를 최대한 쓰지말라고 하는 사람도 있습니다.)

 

람다식 사용법

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

(매개변수, ...)는 오른쪽 중괄호 { } 블록을 실행하기 위해 필요한 값을 제공하는 역할을 합니다. 매개 변수의 이름은 개발자가 자유롭게 지정할 수 있으며 인자타입도 명시하지 않아도 됩니다. -> 기호는 매개 변수를 이용해서 중괄호 { } 바디를 실행한다는 뜻으로 해석하면 됩니다.

 

람다의 특징

 

람다 대수는 이름을 가질 필요가 없다. - 익명 함수 (Anonymous functions)

두 개 이상의 입력이 있는 함수는 최종적으로 1개의 입력만 받는 람다 대수로 단순화 될 수 있다. - 커링 (Curring)

람다식 장점

1. 코드를 간결하게 만들 수 있습니다.

2. 코드가 간결하고 식에 개발자의 의도가 명확히 드러나므로 가독성이 향상됩니다.

3. 함수를 만드는 과정없이 한번에 처리할 수 있기에 코딩하는 시간이 줄어듭니다.

4. 병렬프로그래밍이 용이합니다.

 

람다식 단점

1. 람다를 사용하면서 만드는 무명함수는 재사용이 불가능합니다.

2. 디버깅이 다소 까다롭습니다.

3. 람다를 남발하면 코드가 지저분해질 수 있습니다. (비슷한 함수를 계속 중복생성할 가능성이 높음)

4. 재귀로 만들경우에는 다소 부적합한면이 있습니다.

출처:coding-factory.tistory.com/265

 

[Java] 람다식(Lambda Expressions) -> 사용법 & 예제

 람다식이란? 람다식이란 "식별자없이 실행가능한 함수" 함수인데 함수를 따로 만들지 않고 코드한줄에 함수를 써서 그것을 호출하는 방식이라고 생각하시면 되겠습니다. 함수적 프로그래밍을

coding-factory.tistory.com

 

람다의 표현식

 

1. 람다는 매개변수 화살표(->) 함수몸체로 이용하여 사용 할 수 있습니다.

2. 매개변수가 하나일 경우 매개변수를 생략 할 수 있습니다. 

3. 함수몸체가 단일 실행문이면 괄호{}를 생략 할 수 있습니다. 

4. 함수몸체가 return문으로만 구성되어 있는 경우 괄호{}를 생략 할 수 없습니다.

출처: khj93.tistory.com/entry/JAVA-%EB%9E%8C%EB%8B%A4%EC%8B%9DRambda%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B4%EA%B3%A0-%EC%82%AC%EC%9A%A9%EB%B2%95

 

[JAVA] 람다식(Rambda)의 개념 및 사용법

  람다함수란? 람다 함수는 프로그래밍 언어에서 사용되는 개념으로 익명 함수(Anonymous functions)를 지칭하는 용어입니다. 현재 사용되고 있는 람다의 근간은 수학과 기초 컴퓨터과학 분야에서의

khj93.tistory.com

 

람다방식의 간단한 설명

 

위에서 람다식에 해당하는 부분은 아래과 같다.

()->System.out.println("Lambda Thread")

 

A. () 는 파라미터에 해당하는데, 2.1의 run() 이라는 익명클래스의 메소드가 아무런 파라미터를 취하지 않는다는 의미이다.

B. -> 는 람다식 시작전에 나타나는 람다식 시작토큰이다. 뒤에는 한줄짜리 람다식혹은 { }안에 포함된 여러 람다식들이 올수 있다.

C. System.out.println("Lambda Thread") 는 람다식의 내용부분으로 이 안에는 A의 파라미터값이 사용될수 있다. 

 

4. 자바에서 람다식을 변수로 받는 방법

 

자바에는 값을 변수로 설정할수 있는 방법이 단 두가지 존재한다. 

1) 원시형태(primitive - int, long, float, double등) 

2) 객체형태(object - class혹은 interface)

 

그렇다면 람다식은 어떤 형태로 변수로 할당 될수 있을까? 답은 객체형태, 정확하게는 Interface형태로 람다식을 할당할수 있다. 

이말인 즉슨 람다식또한 객체의 형태를 취하고 있다는 말이다. 모든 자바의 모든 객체에는 인터페이스던 클래스던 이름이 있다. 그러므로 자바의 람다식에는 대놓고 드러내지는 않지만 객체형태를 띄고 있다.  람다식에서는 함수의 이름을 사용해서 로직을 선언하지 않기 때문에, 인터페이스에서도 함수의 이름이 필요가 없을것 같지만, 예전 자바의 모든것을 뒤엎을수는 없기 때문에 기존의 객체의 형태롤 통해 일종의 절충을 하였고, 그것이 @FunctionalInterface 라는 주석이다.

출처:m.blog.naver.com/2feelus/220695347170

 

자바 람다식 (Java Lambda Expression) - 기초편

다음글 - 자바 람다식 중급편관련글 - 튜링머신, 람다식 그리고 함수형 프로그래밍 1. Java 8에 도입된 람...

blog.naver.com

 

 

 

 

올인원 패키지 : JAVA 웹 개발 마스터👉https://bit.ly/35aoeAW