Lambda表达式

概念与定义

是一个匿名函数,可以包含表达式和语句。可以让代码看起来十分简洁

出现的标志

[capture:捕获] (paramenter:界限) mutable -->return type { statement:语句 };

1.函数参数

【】内是函数参数对象,可以是 = 、&、空、this、

&--->注意按照引用传递方式,会锁死控件的一些属性,无法修改相关属性,建议用 = 

=---> lambda所在作用范围内所有可见的变量,值传递的方式。有一种间接操作的感觉

this--->lambda内所有的成员变量

2.操作符重载函数参数

()-->内就是操作符重载函数参数,表示重载的()操作符的参数

没有的话,可以省略;参数可以通过按值和按引用传递

3.可修改标识符

mutable声明--在按值传递时,可以修改拷贝值,原数值不变。可以省略

如果想要修改值拷贝进来的这个数字,那么一定要加mutable这个关键字

    int a=100;
    connect(button2,&QPushButton::clicked,this,[a]()mutable{a=200;qDebug()<

4.返回值类型

示例代码:

    int n=[=]()->int {return 1000;}();
    qDebug()<<"n = "<

本质是一个函数,需要调用,后面加一个函数调用符号();

你可能感兴趣的:(QT编程,c++,qt)