-
JAVA 8 - 람다식공부 이야기/JAVA 2020. 11. 8. 13:38
때는 4학년.
JAVA를 이용한 코딩테스트를 준비하면서 람다식을 사용하며 문제를 푸는 고인물들을 본 적이 있다.
for, while 문을 써대면서 배열에 값을 무식하게 집어넣고 있는 방법을 단 한 줄로 리턴시키는 모습에 경악을 금치 못했었다.
람다식은 JAVA 뿐만이 아니라 Kotlin, C++에서도 사용되는 개념이다.
Microsoft Docs에서는 람다식을
1) 람다(식)은 람다식이 호출되거나 함수에 인수로 전달 되는 위치에서 무명 함수 개체를 정의하는 편리한 방법입니다.
2) 일반적으로 람다는 알고리즘이나 비동기 메서드에 전달되는 몇 줄의 코드를 캡슐화하는 데 사용됩니다.
라고 정의하고 있다.
docs.microsoft.com/ko-kr/cpp/cpp/lambda-expressions-in-cpp?view=msvc-160
C++의 람다 식
C++의 람다 식Lambda Expressions in C++ 이 문서의 내용 --> C + + 11 이상에서 람다 식 (종종 람다)은 호출 되거나 함수에 인수로 전달 되는 위치에서 무명 함수 개체 ( 클로저)를 정의 하는 편리한 방법입
docs.microsoft.com
함수 포인터와 함수 개체를 사용할 때 발생하는 문제점을 개선하기 위해 람다식이 등장했다고 한다.
상태를 유지하지 않는 함수 포인터의 단점과 클래스를 정의할 때 부가적인 오버헤드가 필요한 함수 개체의 단점을
방지할 수가 있다고 한다.
특히 람다는 함수의 인자로 사용되는 경우가 많다. 함수를 선언하거나 조건문, 반환문 등에 자주 사용되는데
현재는 for_each 문의 세 번째 인자로 사용되었다.
C++의 for-each문의 세 번째 인자에서는 사용자가 정의한 함수나 객체를 입력해야 한다.
하지만 람다식을 이용하면 따로 객체를 정의하지 않아도 바로 사용할 수 있다.
이번에는 sort() 함수의 세 번째 인자로 사용된 모습이다.
return 타입으로 함수의 반환 값을 넘겨준다.
제목은 JAVA로 해놓고 왜 C++로 개념 설명을 했는지에 대한 이유는 없다.
Microsoft docs에서 정리한 문서가 깔끔했기 때문이다.
'공부 이야기 > JAVA' 카테고리의 다른 글
private/public, static, final (0) 2024.01.22 equals() 메소드 내부 동작 (0) 2021.09.05 인터페이스식 프로그래밍 (0) 2021.09.02