Rumah > Artikel > pembangunan bahagian belakang > Apakah spesifikasi penulisan untuk ekspresi lambda fungsi dalam C++?
Sintaks standard untuk menulis ungkapan Lambda fungsi C++ ialah: [capture](parameters) -> return_type { // Function body}, dengan tangkapan ialah tangkapan pembolehubah luaran, parameter ialah parameter fungsi dan return_type ialah fungsi return jenis nilai. Jenisnya dibahagikan mengikut senarai tangkapan dan senarai parameter: tangkap semua pembolehubah luaran, tiada parameter: jenis auto tangkap pembolehubah luaran tertentu, tiada parameter: jenis auto (boleh dikurangkan, parameter: jenis fungsi; Ungkapan Lambda digunakan untuk mencipta objek fungsi sementara, yang boleh diberikan kepada pembolehubah atau penunjuk fungsi, atau dihantar terus sebagai argumen.
Fungsi C++ Spesifikasi penulisan ungkapan Lambda
Sintaks:
[capture](parameters) -> return_type { // 函数体 }
Antaranya:
capture
:捕获外部变量,可选,默认为 [&]
(捕获所有外部变量)parameters
:函数参数,可选return_type
:函数返回值类型,可选Lambda 表达式类型:
Lambda 表达式属于匿名函数类型。其类型取决于捕获列表和参数列表:
auto
类型auto
类型(可缩小)functioneff33ae303261d79115a65b552404e91
类型使用规范:
this
Jenis ungkapan Lambda :
Ungkapan Lambda ialah jenis fungsi tanpa nama. Jenisnya bergantung pada senarai tangkapan dan senarai parameter: 🎜🎜🎜Tangkap semua pembolehubah luaran, tiada parameter:// 捕获所有外部变量,无参数 auto lambda1 = []() { // 可以访问外部变量 std::cout << "Lambda 1: " << x << std::endl; }; // 捕获特定外部变量,无参数 int x = 10; auto lambda2 = [x]() { // 只可以访问捕获的外部变量 x std::cout << "Lambda 2: " << x << std::endl; }; // 无捕获,有参数 auto lambda3 = [](int y) { // 没有捕获外部变量,y 为函数参数 std::cout << "Lambda 3: " << y << std::endl; }; int main() { lambda1(); lambda2(); lambda3(20); return 0; }🎜🎜Output: 🎜🎜
Lambda 1: 10 Lambda 2: 10 Lambda 3: 20
Atas ialah kandungan terperinci Apakah spesifikasi penulisan untuk ekspresi lambda fungsi dalam C++?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!