[UE4图文系列]2.Lambda表达式
埃罗芒阿Sensal
2021年01月12日 22:00
收录于文集
共16篇

一.Lambda表达式基本结构:

lambda表达式共分四部分,其中返回值类型可以省略

[外部变量访问方式说明符] (参数列表)-> 返回值类型 {函数体}

例:

[](int a,int b){return a+b;}

其中,参数列表和返回类型为空的话可以不写省略

结构解析:

(1)[]:外部变量访问方式说明符

下面这段话要细品

"外部变量访问方式说明符”可以是=或&,表示“{ }”中用到的、定义在“{ }”外面的变量在“{ }”中是否允许被改变。

=表示不允许,&表示允许。当然,在“{ }”中也可以不使用定义在外面的变量。“-> 返回值类型”可以省略。

(2)():参数列表

用于在“{ }”函数体中进行运算的参数,一般从外部传入

(3)->:返回值类型,返回值为空的话可以不写,或者也可以在函数体内返回,例如:

[](int a,int b){ return a+b;}

(4){}:函数体,用于书写函数逻辑,函数体内可以使用参数列表传入的参数和使用“[]”从函数外捕获的参数

例1:

上图是表达式的简单用法,lam表达式跟函数的区别其实就是不需要进行额外的定义,lam(a,b)可以理解为等同于调用了一个  “名为lam,参数列表为两个int值,函数返回两个之和的函数”。

如下:

int lam(int a, int b)

{

return a+b;

}

c=lam(a,b);

其实这也是表达式的作用---Lambda 表达式用于定义并创建匿名的函数对象,以简化编程工作

二.下面举例说明一下[]外部变量访问方式说明符里面不同的表示符号起到的不同作用: