C++의 ʎ 함수에 대해 조금 알아보세요 💎
C++에서 람다 함수는 꽤 유명합니다. 그리고 수많은 기능으로 코드를 더 읽기 쉽게 만듭니다. 그럼 👀에 대해 알아보도록 하겠습니다.
C++에서 람다 함수의 구문에 대해 이야기할 때 완전히 다릅니다.
우리는 학습 경로에서 복잡한 코드를 따르지 않고 항상 일을 더 간단하게 만들려고 노력합니다.
[ captures ] ( params ) -> return_type { body_statements }
먼저 캡처에 대해 이해하려고 합니다. 함수 외부에 정의된 변수가 필요할 때 캡처를 사용하여 변수의 복제본을 만듭니다.
[ ] { } // no captures
[=] { } // everything by copy(not recommended)
[&] { } // everything by reference(not recommended)
[x] { } // x by copy
[&x] { } // x by reference
[&, x] { } // x by copy, everything else by reference
[=, &x] { } // x by reference, everything else by copy
If we capture by copy that's make the clone of the variable only, they don't affect actual variables. But when we capture by reference we able to change the value of the variable inside that function.
auto say_hello = [] {
cout << "Hello World!";
};
// init varible with value
int a = 10;
// lambda function
auto print_a = [a] ( ) {
cout << a;
};
print_a(); \\ output is 10
// init varible with value
int a = 10;
// lambda function
auto print_a = [a] ( ) {
a = 12;
cout << a;
};
print_a(); \\ output is 12
이제 캡처의 개념이 꽤 명확해진 것 같습니다.
이제 params로 넘어갑니다. params는 매개변수의 유일한 짧은 이름입니다. 🥱 이 개념은 다들 잘 아실 거라 생각합니다. 그러나 여전히 람다 함수의 매개 변수에 대한 간단한 예를 제공하고 싶습니다.
auto sum = [](int a, int b) {
return a + b;
}
cout << sum(10,4); // Output is 14
이제 마지막은 return_type이고 C++ 20 이후에는 반환 유형이 선택 사항입니다. 람다 함수의 반환 유형을 지정할 필요가 없습니다.
But still we may specify return type with using -> sign.
auto sum = [](int a, int b) -> int {
return a + b;
};
🎉✨✨🎉🎊🎊🎉🎉✨✨🎉🎊🎊🎉
dvlpr_roshan( Roshan Kumar )을 사용하여 몇 분 안에 C++ 람다 함수를 배운 것을 축하합니다.
그래도 고급 기능으로 람다 기능을 조금 더 배우고 싶은 사람.
[ captures ] <tparams> ( params ) specifiers exception attr -> return_type {body_statements}
다음 링크는 C++의 람다 함수 개념에 대해 자세히 알아보는 데 도움이 될 수 있습니다.
Reference
이 문제에 관하여(C++의 ʎ 함수에 대해 조금 알아보세요 💎), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dvlprroshan/lambda-function-in-c-p00텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)