C 函數 Lambda 表達式的寫法規範語法為:[capture](parameters) -> return_type { // 函數體},其中 capture 為捕獲外部變量,parameters 為函數參數,return_type 為函數傳回值類型。其類型根據捕獲清單和參數清單分為:捕獲所有外部變量,無參數:auto 類型;捕獲特定外部變量,無參數:auto 類型(可縮小);無捕獲,有參數:function 類型。 Lambda 表達式用於建立臨時函數對象,可以將其賦值給變數或函數指針,或直接作為參數傳遞。
C 函數Lambda 表達式的寫法規格
語法:
[capture](parameters) -> return_type { // 函数体 }
其中:
capture
:捕獲外部變量,可選,預設為[&]
(捕獲所有外部變數)#parameters
:函數參數,可選return_type
:函數傳回值類型,可選Lambda 表達式類型:
Lambda 表達式屬於匿名函數類型。其類型取決於捕獲列表和參數列表:
auto
類型auto
類型(可縮小)function<return_type(parameters)>
類型#使用規範:
this
指標指向建立它們的上下文。 實戰案例:
// 捕获所有外部变量,无参数 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; }
#輸出:
Lambda 1: 10 Lambda 2: 10 Lambda 3: 20
以上是C++ 函式lambda表達式的寫法規格是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!